Sample code for 30+ languages & platforms
Zig

Query NTP Server for Current Date/Time

Demonstrates how to query an NTP server to get the current date/time.

Note: This feature was added in Chilkat v9.5.0.96.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

    // Specify the NTP server domain.
    // Information is passed in a JSON object to allow for any unanticipated future optional information that might need to be provided.
    const json = try chilkat.JsonObject.init();
    defer json.deinit();
    json.updateString("ntp_server", "pool.ntp.org") catch {};

    // Query the NTP server for the current date/time.
    const dt = try chilkat.DateTime.init();
    defer dt.deinit();
    dt.setFromNtpServer(try json.emit(alloc)) catch {
        std.debug.print("{s}\n", .{try dt.getLastErrorText(alloc)});
        return;
    };

    // Show the date/time in various formats..
    const b_local_time = true;
    std.debug.print("{s}\n", .{try dt.getAsTimestamp(alloc, b_local_time)});
    std.debug.print("{s}\n", .{try dt.getAsRfc822(alloc, b_local_time)});
    std.debug.print("{d}\n", .{dt.getAsUnixTime(b_local_time)});

    // Sample output:

    // 2023-10-31T09:43:27-05:00
    // Tue, 31 Oct 2023 09:43:27 -0500
    // 1698745407
}