Avoid ambiguous local<->UTC conversions right around when the clocks change.

This commit is contained in:
Dianne Skoll
2022-10-17 09:58:32 -04:00
parent 8fc19358bb
commit 3692a6b265
2 changed files with 65 additions and 65 deletions

View File

@@ -10334,20 +10334,20 @@ STDOUT is a: PIPE
set a localtoutc('2022-01-01@12:00') set a localtoutc('2022-01-01@12:00')
localtoutc(2022-01-01@12:00) => 2022-01-01@17:00 localtoutc(2022-01-01@12:00) => 2022-01-01@17:00
set a localtoutc('2022-03-13@02:59') set a localtoutc('2022-03-13@03:59')
localtoutc(2022-03-13@02:59) => 2022-03-13@07:59 localtoutc(2022-03-13@03:59) => 2022-03-13@07:59
set a localtoutc('2022-03-13@03:00') set a localtoutc('2022-03-13@04:00')
localtoutc(2022-03-13@03:00) => 2022-03-13@07:00 localtoutc(2022-03-13@04:00) => 2022-03-13@08:00
set a localtoutc('2022-03-13@03:01') set a localtoutc('2022-03-13@04:01')
localtoutc(2022-03-13@03:01) => 2022-03-13@07:01 localtoutc(2022-03-13@04:01) => 2022-03-13@08:01
set a localtoutc('2022-06-01@12:00') set a localtoutc('2022-06-01@12:00')
localtoutc(2022-06-01@12:00) => 2022-06-01@16:00 localtoutc(2022-06-01@12:00) => 2022-06-01@16:00
set a localtoutc('2022-11-06@01:59') set a localtoutc('2022-11-06@02:59')
localtoutc(2022-11-06@01:59) => 2022-11-06@05:59 localtoutc(2022-11-06@02:59) => 2022-11-06@07:59
set a localtoutc('2022-11-06@02:00') set a localtoutc('2022-11-06@03:00')
localtoutc(2022-11-06@02:00) => 2022-11-06@07:00 localtoutc(2022-11-06@03:00) => 2022-11-06@08:00
set a localtoutc('2022-11-06@02:01') set a localtoutc('2022-11-06@03:01')
localtoutc(2022-11-06@02:01) => 2022-11-06@07:01 localtoutc(2022-11-06@03:01) => 2022-11-06@08:01
set a localtoutc('2022-12-01@12:00') set a localtoutc('2022-12-01@12:00')
localtoutc(2022-12-01@12:00) => 2022-12-01@17:00 localtoutc(2022-12-01@12:00) => 2022-12-01@17:00
@@ -10355,10 +10355,10 @@ set b utctolocal('2022-01-01@17:00')
utctolocal(2022-01-01@17:00) => 2022-01-01@12:00 utctolocal(2022-01-01@17:00) => 2022-01-01@12:00
set b utctolocal('2022-03-13@06:00') set b utctolocal('2022-03-13@06:00')
utctolocal(2022-03-13@06:00) => 2022-03-13@01:00 utctolocal(2022-03-13@06:00) => 2022-03-13@01:00
set b utctolocal('2022-03-13@06:01') set b utctolocal('2022-03-13@07:01')
utctolocal(2022-03-13@06:01) => 2022-03-13@01:01 utctolocal(2022-03-13@07:01) => 2022-03-13@03:01
set b utctolocal('2022-03-13@06:59') set b utctolocal('2022-03-13@07:59')
utctolocal(2022-03-13@06:59) => 2022-03-13@01:59 utctolocal(2022-03-13@07:59) => 2022-03-13@03:59
set b utctolocal('2022-03-13@07:00') set b utctolocal('2022-03-13@07:00')
utctolocal(2022-03-13@07:00) => 2022-03-13@03:00 utctolocal(2022-03-13@07:00) => 2022-03-13@03:00
set b utctolocal('2022-03-13@07:01') set b utctolocal('2022-03-13@07:01')
@@ -10367,20 +10367,20 @@ set b utctolocal('2022-03-13@07:59')
utctolocal(2022-03-13@07:59) => 2022-03-13@03:59 utctolocal(2022-03-13@07:59) => 2022-03-13@03:59
set b utctolocal('2022-06-01@16:00') set b utctolocal('2022-06-01@16:00')
utctolocal(2022-06-01@16:00) => 2022-06-01@12:00 utctolocal(2022-06-01@16:00) => 2022-06-01@12:00
set b utctolocal('2022-11-06@05:59') set b utctolocal('2022-11-06@03:59')
utctolocal(2022-11-06@05:59) => 2022-11-06@01:59 utctolocal(2022-11-06@03:59) => 2022-11-05@23:59
set b utctolocal('2022-11-06@06:00')
utctolocal(2022-11-06@06:00) => 2022-11-06@01:00
set b utctolocal('2022-11-06@06:01')
utctolocal(2022-11-06@06:01) => 2022-11-06@01:01
set b utctolocal('2022-11-06@06:59')
utctolocal(2022-11-06@06:59) => 2022-11-06@01:59
set b utctolocal('2022-11-06@07:00') set b utctolocal('2022-11-06@07:00')
utctolocal(2022-11-06@07:00) => 2022-11-06@02:00 utctolocal(2022-11-06@07:00) => 2022-11-06@02:00
set b utctolocal('2022-11-06@07:01') set b utctolocal('2022-11-06@07:01')
utctolocal(2022-11-06@07:01) => 2022-11-06@02:01 utctolocal(2022-11-06@07:01) => 2022-11-06@02:01
set b utctolocal('2022-12-01@17:00') set b utctolocal('2022-11-06@07:59')
utctolocal(2022-12-01@17:00) => 2022-12-01@12:00 utctolocal(2022-11-06@07:59) => 2022-11-06@02:59
set b utctolocal('2022-11-06@08:00')
utctolocal(2022-11-06@08:00) => 2022-11-06@03:00
set b utctolocal('2022-11-06@08:01')
utctolocal(2022-11-06@08:01) => 2022-11-06@03:01
set b utctolocal('2022-12-01@18:00')
utctolocal(2022-12-01@18:00) => 2022-12-01@13:00
set c timezone('2022-07-01') set c timezone('2022-07-01')
timezone(2022-07-01) => "EDT" timezone(2022-07-01) => "EDT"
@@ -10392,20 +10392,20 @@ No reminders.
set a localtoutc('2022-01-01@12:00') set a localtoutc('2022-01-01@12:00')
localtoutc(2022-01-01@12:00) => 2022-01-01@11:00 localtoutc(2022-01-01@12:00) => 2022-01-01@11:00
set a localtoutc('2022-03-13@02:59') set a localtoutc('2022-03-13@03:59')
localtoutc(2022-03-13@02:59) => 2022-03-13@01:59 localtoutc(2022-03-13@03:59) => 2022-03-13@02:59
set a localtoutc('2022-03-13@03:00') set a localtoutc('2022-03-13@04:00')
localtoutc(2022-03-13@03:00) => 2022-03-13@02:00 localtoutc(2022-03-13@04:00) => 2022-03-13@03:00
set a localtoutc('2022-03-13@03:01') set a localtoutc('2022-03-13@04:01')
localtoutc(2022-03-13@03:01) => 2022-03-13@02:01 localtoutc(2022-03-13@04:01) => 2022-03-13@03:01
set a localtoutc('2022-06-01@12:00') set a localtoutc('2022-06-01@12:00')
localtoutc(2022-06-01@12:00) => 2022-06-01@10:00 localtoutc(2022-06-01@12:00) => 2022-06-01@10:00
set a localtoutc('2022-11-06@01:59') set a localtoutc('2022-11-06@02:59')
localtoutc(2022-11-06@01:59) => 2022-11-06@00:59 localtoutc(2022-11-06@02:59) => 2022-11-06@01:59
set a localtoutc('2022-11-06@02:00') set a localtoutc('2022-11-06@03:00')
localtoutc(2022-11-06@02:00) => 2022-11-06@01:00 localtoutc(2022-11-06@03:00) => 2022-11-06@02:00
set a localtoutc('2022-11-06@02:01') set a localtoutc('2022-11-06@03:01')
localtoutc(2022-11-06@02:01) => 2022-11-06@01:01 localtoutc(2022-11-06@03:01) => 2022-11-06@02:01
set a localtoutc('2022-12-01@12:00') set a localtoutc('2022-12-01@12:00')
localtoutc(2022-12-01@12:00) => 2022-12-01@11:00 localtoutc(2022-12-01@12:00) => 2022-12-01@11:00
@@ -10413,10 +10413,10 @@ set b utctolocal('2022-01-01@17:00')
utctolocal(2022-01-01@17:00) => 2022-01-01@18:00 utctolocal(2022-01-01@17:00) => 2022-01-01@18:00
set b utctolocal('2022-03-13@06:00') set b utctolocal('2022-03-13@06:00')
utctolocal(2022-03-13@06:00) => 2022-03-13@07:00 utctolocal(2022-03-13@06:00) => 2022-03-13@07:00
set b utctolocal('2022-03-13@06:01') set b utctolocal('2022-03-13@07:01')
utctolocal(2022-03-13@06:01) => 2022-03-13@07:01 utctolocal(2022-03-13@07:01) => 2022-03-13@08:01
set b utctolocal('2022-03-13@06:59') set b utctolocal('2022-03-13@07:59')
utctolocal(2022-03-13@06:59) => 2022-03-13@07:59 utctolocal(2022-03-13@07:59) => 2022-03-13@08:59
set b utctolocal('2022-03-13@07:00') set b utctolocal('2022-03-13@07:00')
utctolocal(2022-03-13@07:00) => 2022-03-13@08:00 utctolocal(2022-03-13@07:00) => 2022-03-13@08:00
set b utctolocal('2022-03-13@07:01') set b utctolocal('2022-03-13@07:01')
@@ -10425,20 +10425,20 @@ set b utctolocal('2022-03-13@07:59')
utctolocal(2022-03-13@07:59) => 2022-03-13@08:59 utctolocal(2022-03-13@07:59) => 2022-03-13@08:59
set b utctolocal('2022-06-01@16:00') set b utctolocal('2022-06-01@16:00')
utctolocal(2022-06-01@16:00) => 2022-06-01@18:00 utctolocal(2022-06-01@16:00) => 2022-06-01@18:00
set b utctolocal('2022-11-06@05:59') set b utctolocal('2022-11-06@03:59')
utctolocal(2022-11-06@05:59) => 2022-11-06@06:59 utctolocal(2022-11-06@03:59) => 2022-11-06@04:59
set b utctolocal('2022-11-06@06:00')
utctolocal(2022-11-06@06:00) => 2022-11-06@07:00
set b utctolocal('2022-11-06@06:01')
utctolocal(2022-11-06@06:01) => 2022-11-06@07:01
set b utctolocal('2022-11-06@06:59')
utctolocal(2022-11-06@06:59) => 2022-11-06@07:59
set b utctolocal('2022-11-06@07:00') set b utctolocal('2022-11-06@07:00')
utctolocal(2022-11-06@07:00) => 2022-11-06@08:00 utctolocal(2022-11-06@07:00) => 2022-11-06@08:00
set b utctolocal('2022-11-06@07:01') set b utctolocal('2022-11-06@07:01')
utctolocal(2022-11-06@07:01) => 2022-11-06@08:01 utctolocal(2022-11-06@07:01) => 2022-11-06@08:01
set b utctolocal('2022-12-01@17:00') set b utctolocal('2022-11-06@07:59')
utctolocal(2022-12-01@17:00) => 2022-12-01@18:00 utctolocal(2022-11-06@07:59) => 2022-11-06@08:59
set b utctolocal('2022-11-06@08:00')
utctolocal(2022-11-06@08:00) => 2022-11-06@09:00
set b utctolocal('2022-11-06@08:01')
utctolocal(2022-11-06@08:01) => 2022-11-06@09:01
set b utctolocal('2022-12-01@18:00')
utctolocal(2022-12-01@18:00) => 2022-12-01@19:00
set c timezone('2022-07-01') set c timezone('2022-07-01')
timezone(2022-07-01) => "CEST" timezone(2022-07-01) => "CEST"

View File

@@ -1,30 +1,30 @@
# Test conversion between local time and UTC # Test conversion between local time and UTC
set a localtoutc('2022-01-01@12:00') set a localtoutc('2022-01-01@12:00')
set a localtoutc('2022-03-13@02:59') set a localtoutc('2022-03-13@03:59')
set a localtoutc('2022-03-13@03:00') set a localtoutc('2022-03-13@04:00')
set a localtoutc('2022-03-13@03:01') set a localtoutc('2022-03-13@04:01')
set a localtoutc('2022-06-01@12:00') set a localtoutc('2022-06-01@12:00')
set a localtoutc('2022-11-06@01:59') set a localtoutc('2022-11-06@02:59')
set a localtoutc('2022-11-06@02:00') set a localtoutc('2022-11-06@03:00')
set a localtoutc('2022-11-06@02:01') set a localtoutc('2022-11-06@03:01')
set a localtoutc('2022-12-01@12:00') set a localtoutc('2022-12-01@12:00')
set b utctolocal('2022-01-01@17:00') set b utctolocal('2022-01-01@17:00')
set b utctolocal('2022-03-13@06:00') set b utctolocal('2022-03-13@06:00')
set b utctolocal('2022-03-13@06:01') set b utctolocal('2022-03-13@07:01')
set b utctolocal('2022-03-13@06:59') set b utctolocal('2022-03-13@07:59')
set b utctolocal('2022-03-13@07:00') set b utctolocal('2022-03-13@07:00')
set b utctolocal('2022-03-13@07:01') set b utctolocal('2022-03-13@07:01')
set b utctolocal('2022-03-13@07:59') set b utctolocal('2022-03-13@07:59')
set b utctolocal('2022-06-01@16:00') set b utctolocal('2022-06-01@16:00')
set b utctolocal('2022-11-06@05:59') set b utctolocal('2022-11-06@03:59')
set b utctolocal('2022-11-06@06:00')
set b utctolocal('2022-11-06@06:01')
set b utctolocal('2022-11-06@06:59')
set b utctolocal('2022-11-06@07:00') set b utctolocal('2022-11-06@07:00')
set b utctolocal('2022-11-06@07:01') set b utctolocal('2022-11-06@07:01')
set b utctolocal('2022-12-01@17:00') set b utctolocal('2022-11-06@07:59')
set b utctolocal('2022-11-06@08:00')
set b utctolocal('2022-11-06@08:01')
set b utctolocal('2022-12-01@18:00')
set c timezone('2022-07-01') set c timezone('2022-07-01')
set c timezone('2022-12-01') set c timezone('2022-12-01')