aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--distamp.ha10
1 files 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("<t:{}:R>", 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));
};