From 951a1d7c777902c3d93c0629c5940ac25f827f62 Mon Sep 17 00:00:00 2001 From: Julian Hurst Date: Mon, 21 Oct 2024 13:22:55 +0200 Subject: Use Europe/Paris tz instead of LOCAL LOCAL isn't Europe/Paris but UTC here for some reason --- distamp.ha | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/distamp.ha b/distamp.ha index 72a71b1..be2ce02 100644 --- a/distamp.ha +++ b/distamp.ha @@ -28,6 +28,8 @@ export fn main() void = { case let i: i64 => printdistamp(i); return; + case let e: chrono::tzdberror => + fmt::fatal(chrono::strerror(e)); case let e: date::parsefail => let s = strings::concat(date::strerror(e), "\n", "Date format must be 'year-month-day hour:minute:second'"); defer free(s); @@ -75,13 +77,13 @@ fn printdistamp(i: i64) void = { fmt::printfln("", i)!; }; -fn abs(s: str) (i64 | date::error) = { +fn abs(s: str) (i64 | date::error | chrono::tzdberror) = { let v = date::newvirtual(); - v.vloc = chrono::LOCAL; + v.vloc = chrono::tz("Europe/Paris")?; v.zoff = date::zflag::LAP_EARLY | date::zflag::GAP_END; - date::parse(&v, "%Y-%m-%d %T", s)!; + date::parse(&v, "%Y-%m-%d %T", s)?; v.nanosecond = 0; - let d = date::realize(v, chrono::LOCAL)!; + let d = date::realize(v, chrono::LOCAL)?; //date::format(os::stderr, "%Y-%m-%d %T %L", &d)!; return time::unix(*(&d: *time::instant)); }; -- cgit v1.2.3