@@ -72,6 +72,8 @@ var testInputs = []dateTest{
7272 // ??
7373 {in : "Fri Jul 03 2015 18:04:07 GMT+0100 (GMT Daylight Time)" , out : "2015-07-03 17:04:07 +0000 UTC" },
7474 {in : "Fri Jul 3 2015 06:04:07 GMT+0100 (GMT Daylight Time)" , out : "2015-07-03 05:04:07 +0000 UTC" },
75+ {in : "Fri Jul 03 2015 18:04:07 UTC+0100 (GMT Daylight Time)" , out : "2015-07-03 17:04:07 +0000 UTC" },
76+ {in : "Fri Jul 3 2015 06:04:07 UTC+0100 (GMT Daylight Time)" , out : "2015-07-03 05:04:07 +0000 UTC" },
7577 {in : "Fri Jul 3 2015 06:04:07 PST-0700 (Pacific Daylight Time)" , out : "2015-07-03 13:04:07 +0000 UTC" , zname : "PST" },
7678 {in : "Fri Jul 3 2015 06:04:07 CEST-0700 (Central European Summer Time)" , out : "2015-07-03 13:04:07 +0000 UTC" , zname : "CEST" },
7779 // Month dd, yyyy at time
@@ -87,24 +89,24 @@ var testInputs = []dateTest{
8789 {in : "OCTober 17, 2012 at 18:17:16" , out : "2012-10-17 18:17:16 +0000 UTC" },
8890 {in : "noVEMBER 17, 2012 at 18:17:16" , out : "2012-11-17 18:17:16 +0000 UTC" },
8991 {in : "December 17, 2012 at 18:17:16" , out : "2012-12-17 18:17:16 +0000 UTC" },
90- {in : "September 17, 2012 at 5:00pm UTC-05" , out : "2012-09-17 17 :00:00 +0000 UTC" , zname : "UTC " },
92+ {in : "September 17, 2012 at 5:00pm UTC-05" , out : "2012-09-17 22 :00:00 +0000 UTC" , zname : "" }, // empty zone name, special case of UTC+NNNN
9193 {in : "September 17, 2012 at 10:09am PST-08" , out : "2012-09-17 18:09:00 +0000 UTC" , zname : "PST" },
9294 {in : "September 17, 2012 at 10:09am CEST+02" , out : "2012-09-17 08:09:00 +0000 UTC" , zname : "CEST" },
9395 {in : "September 17, 2012, 10:10:09" , out : "2012-09-17 10:10:09 +0000 UTC" },
9496 {in : "May 17, 2012 at 10:09am PST-08" , out : "2012-05-17 18:09:00 +0000 UTC" , zname : "PST" },
9597 {in : "May 17, 2012 AT 10:09am PST-08" , out : "2012-05-17 18:09:00 +0000 UTC" , zname : "PST" },
9698 {in : "May 17, 2012 AT 10:09am CEST+02" , out : "2012-05-17 08:09:00 +0000 UTC" , zname : "CEST" },
9799 // Month dd, yyyy time
98- {in : "September 17, 2012 5:00pm UTC-05" , out : "2012-09-17 17 :00:00 +0000 UTC" , zname : "UTC " },
100+ {in : "September 17, 2012 5:00pm UTC-05" , out : "2012-09-17 22 :00:00 +0000 UTC" , zname : "" },
99101 {in : "September 17, 2012 10:09am PST-08" , out : "2012-09-17 18:09:00 +0000 UTC" , zname : "PST" },
100102 {in : "September 17, 2012 10:09am CEST+02" , out : "2012-09-17 08:09:00 +0000 UTC" , zname : "CEST" },
101103 {in : "September 17, 2012 09:01:00" , out : "2012-09-17 09:01:00 +0000 UTC" },
102104 // Month dd yyyy time
103- {in : "September 17 2012 5:00pm UTC-05" , out : "2012-09-17 17 :00:00 +0000 UTC" , zname : "UTC " },
104- {in : "September 17 2012 5:00pm UTC-0500" , out : "2012-09-17 17 :00:00 +0000 UTC" , zname : "UTC " },
105+ {in : "September 17 2012 5:00pm UTC-05" , out : "2012-09-17 22 :00:00 +0000 UTC" , zname : "" },
106+ {in : "September 17 2012 5:00pm UTC-0500" , out : "2012-09-17 22 :00:00 +0000 UTC" , zname : "" },
105107 {in : "September 17 2012 10:09am PST-08" , out : "2012-09-17 18:09:00 +0000 UTC" , zname : "PST" },
106108 {in : "September 17 2012 10:09am CEST+02" , out : "2012-09-17 08:09:00 +0000 UTC" , zname : "CEST" },
107- {in : "September 17 2012 5:00PM UTC-05" , out : "2012-09-17 17 :00:00 +0000 UTC" , zname : "UTC " },
109+ {in : "September 17 2012 5:00PM UTC-05" , out : "2012-09-17 22 :00:00 +0000 UTC" , zname : "" },
108110 {in : "September 17 2012 10:09AM PST-08" , out : "2012-09-17 18:09:00 +0000 UTC" , zname : "PST" },
109111 {in : "September 17 2012 10:09AM CEST+02" , out : "2012-09-17 08:09:00 +0000 UTC" , zname : "CEST" },
110112 {in : "September 17 2012 09:01:00" , out : "2012-09-17 09:01:00 +0000 UTC" },
@@ -178,6 +180,7 @@ var testInputs = []dateTest{
178180 {in : "Fri, 03-Jul-15 8:8:8 CEST" , out : "2015-07-03 08:08:08 +0000 UTC" , zname : "CEST" },
179181 // day, dd-Mon-yy hh:mm:zz TZ (text) https://github.com/araddon/dateparse/issues/116
180182 {in : "Sun, 3 Jan 2021 00:12:23 +0800 (GMT+08:00)" , out : "2021-01-02 16:12:23 +0000 UTC" },
183+ {in : "Sun, 3 Jan 2021 00:12:23 +0800 (UTC+08:00)" , out : "2021-01-02 16:12:23 +0000 UTC" },
181184 // RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
182185 {in : "Wednesday, 07-May-09 08:00:43 MST" , out : "2009-05-07 08:00:43 +0000 UTC" , zname : "MST" },
183186 {in : "Wednesday, 07-May-09 08:00:43 CEST" , out : "2009-05-07 08:00:43 +0000 UTC" , zname : "CEST" },
@@ -378,6 +381,8 @@ var testInputs = []dateTest{
378381 // https://github.com/araddon/dateparse/issues/157
379382 {in : "Thu Jan 28 2021 15:28:21 GMT+0000 (Coordinated Universal Time)" , out : "2021-01-28 15:28:21 +0000 UTC" },
380383 {in : "Thu Jan 28 2021 15:28:21 GMT+0100 (Coordinated Universal Time)" , out : "2021-01-28 14:28:21 +0000 UTC" },
384+ {in : "Thu Jan 28 2021 15:28:21 UTC+0000 (Coordinated Universal Time)" , out : "2021-01-28 15:28:21 +0000 UTC" },
385+ {in : "Thu Jan 28 2021 15:28:21 UTC+0100 (Coordinated Universal Time)" , out : "2021-01-28 14:28:21 +0000 UTC" },
381386 // https://github.com/araddon/dateparse/issues/130
382387 {in : "1985-04-12T23:20:50Z" , out : "1985-04-12 23:20:50 +0000 UTC" },
383388 {in : "1985-04-12T23:20:50.52Z" , out : "1985-04-12 23:20:50.52 +0000 UTC" },
@@ -635,7 +640,9 @@ var testInputs = []dateTest{
635640
636641 {in : "Wed, 8 Feb 2023 19:00:46 +1100 (AEDT)" , out : "2023-02-08 08:00:46 +0000 UTC" },
637642 {in : "FRI, 16 AUG 2013 9:39:51 +1000" , out : "2013-08-15 23:39:51 +0000 UTC" },
643+ // https://github.com/araddon/dateparse/issues/158
638644 {in : "Mon, 1 Dec 2008 14:48:22 GMT-07:00" , out : "2008-12-01 21:48:22 +0000 UTC" },
645+ {in : "Mon, 1 Dec 2008 14:48:22 UTC-07:00" , out : "2008-12-01 21:48:22 +0000 UTC" },
639646}
640647
641648func TestParse (t * testing.T ) {
@@ -1055,6 +1062,7 @@ func TestRetryAmbiguousDateWithSwap(t *testing.T) {
10551062 assert .Equal (t , "2014-02-13 04:08:09 +0000 UTC" , fmt .Sprintf ("%v" , ts .In (time .UTC )))
10561063}
10571064
1065+ // Convenience function for debugging a particular broken test case
10581066func TestDebug (t * testing.T ) {
10591067 MustParse ("Jul 9, 2012 at 5:02am (EST)" )
10601068}
0 commit comments