diff --git a/main.zig b/main.zig index 01a825d15782969b38992fab576c72eb7c751d02..f87825477d27c69071d3f81e2b018098c7d79995 100644 --- a/main.zig +++ b/main.zig @@ -53,3 +53,9 @@ test { try assertOk(1144509852789, "N", "AD"); } test { try assertOk(1144509852789, "NN", "Anno Domini"); } test { try assertOk(1144509852789, "A", "PM"); } test { try assertOk(1144509852789, "a", "pm"); } +test { try assertOk(1144509852789, "H", "15"); } +test { try assertOk(1144509852789, "HH", "15"); } +test { try assertOk(1144509852789, "h", "3"); } +test { try assertOk(1144509852789, "hh", "03"); } +test { try assertOk(1144509852789, "k", "15"); } +test { try assertOk(1144509852789, "kk", "15"); } diff --git a/time.zig b/time.zig index 66dcb26fa2ed1b260df0d878ee4b8140b2f3657c..c856e7a93e5c737a2eabb8065c460264d22edb6a 100644 --- a/time.zig +++ b/time.zig @@ -226,7 +226,6 @@ pub const DateTime = struct { .ddd => try writer.writeAll(@tagName(self.weekday)), .DD => try writer.print("{:0>2}", .{self.days + 1}), .YYYY => try writer.print("{:0>4}", .{self.years}), - .HH => try writer.print("{:0>2}", .{self.hours}), .mm => try writer.print("{:0>2}", .{self.minutes}), .ss => try writer.print("{:0>2}", .{self.seconds}), .SSS => try writer.print("{:0>3}", .{self.ms}), @@ -258,6 +257,12 @@ pub const DateTime = struct { .NN => try writer.writeAll("Anno Domini"), .A => try printLongName(writer, self.hours / 12, &[_]string{ "AM", "PM" }), .a => try printLongName(writer, self.hours / 12, &[_]string{ "am", "pm" }), + .H => try writer.print("{}", .{self.hours}), + .HH => try writer.print("{:0>2}", .{self.hours}), + .h => try writer.print("{}", .{wrap(self.hours, 12)}), + .hh => try writer.print("{:0>2}", .{wrap(self.hours, 12)}), + .k => try writer.print("{}", .{wrap(self.hours, 24)}), + .kk => try writer.print("{:0>2}", .{wrap(self.hours, 24)}), else => @compileError("'" ++ @tagName(tag) ++ "' not currently supported"), }