Zig
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
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
}