Generic Date, Time, and DateTime library.
build.zig.zon
.{
.name = "yourProject",
.version = "0.0.1",
.dependencies = .{
.@"datetime" = .{
.url = "https://github.com/clickingbuttons/datetime/archive/refs/tags/latest-release.tar.gz",
},
},
}
build.zig
const datetime = b.dependency("datetime", .{
.target = target,
.optimize = optimize,
});
your_lib_or_exe.root_module.addImport("datetime", datetime.module("datetime"));
Run zig build
and then copy the expected hash into build.zig.zon
.
Check out the demos. Here’s a simple one:
const std = @import("std");
const datetime = @import("datetime");
test "now" {
const date = datetime.Date.now();
std.debug.print("today's date is {rfc3339}\n", .{ date });
const time = datetime.Time.now();
std.debug.print("today's time is {rfc3339}\n", .{ time });
const nanotime = datetime.time.Nano.now();
std.debug.print("today's nanotime is {rfc3339}\n", .{ nanotime });
const dt = datetime.DateTime.now();
std.debug.print("today's date and time is {rfc3339}\n", .{ dt });
const NanoDateTime = datetime.datetime.Advanced(datetime.Date, datetime.time.Nano, false);
const ndt = NanoDateTime.now();
std.debug.print("today's date and nanotime is {rfc3339}\n", .{ ndt });
}
Features:
Year
type for more or less precision.Subsecond
type for more or less precision.epoch
for epoch subsecond conversion.OffsetSeconds
field.