@@ -133,6 +133,8 @@ func TestAutoParse_errors(t *testing.T) {
133
133
"+10-11-12" ,
134
134
"+100-02-03" ,
135
135
"-123-05-06" ,
136
+ "20210506T0Z" ,
137
+ "2021-05-06T0:0:0Z" ,
136
138
"--" ,
137
139
"" ,
138
140
" " ,
@@ -161,6 +163,7 @@ func TestParseISO(t *testing.T) {
161
163
{value : "+1970-01-01" , year : 1970 , month : time .January , day : 1 },
162
164
{value : "+01970-01-02" , year : 1970 , month : time .January , day : 2 },
163
165
{value : "2000-02-28" , year : 2000 , month : time .February , day : 28 },
166
+ {value : "2018-02-03T00:00:00Z" , year : 2018 , month : time .February , day : 3 },
164
167
{value : "+2000-02-29" , year : 2000 , month : time .February , day : 29 },
165
168
{value : "+02000-03-01" , year : 2000 , month : time .March , day : 1 },
166
169
{value : "+002004-02-28" , year : 2004 , month : time .February , day : 28 },
@@ -190,6 +193,7 @@ func TestParseISO(t *testing.T) {
190
193
{value : "12340506" , year : 1234 , month : time .May , day : 6 },
191
194
{value : "+12340506" , year : 1234 , month : time .May , day : 6 },
192
195
{value : "-00191012" , year : - 19 , month : time .October , day : 12 },
196
+ {value : "20210506T010203Z" , year : 2021 , month : time .May , day : 6 },
193
197
}
194
198
for i , c := range cases {
195
199
t .Run (fmt .Sprintf ("%d %s" , i , c .value ), func (t * testing.T ) {
@@ -207,29 +211,31 @@ func TestParseISO_errors(t *testing.T) {
207
211
value string
208
212
want string
209
213
}{
210
- {value : `` , want : `Date.ParseISO: cannot parse "": ` + "too short" },
211
- {value : `-` , want : `Date.ParseISO: cannot parse "-": ` + "too short" },
212
- {value : `z` , want : `Date.ParseISO: cannot parse "z": ` + "too short" },
213
- {value : `z--` , want : `Date.ParseISO: cannot parse "z--": ` + "year has wrong length\n month has wrong length\n day has wrong length" },
214
- {value : `not-a-date` , want : `Date.ParseISO: cannot parse "not-a-date": ` + "year has wrong length\n month has wrong length\n day has wrong length" },
215
- {value : `foot-of-og` , want : `Date.ParseISO: cannot parse "foot-of-og": ` + "invalid year\n invalid month\n invalid day" },
216
- {value : `215-08-15` , want : `Date.ParseISO: cannot parse "215-08-15": year has wrong length` },
217
- {value : "1234-05" , want : `Date.ParseISO: cannot parse "1234-05": incorrect length for ordinal date yyyy-ooo` },
218
- {value : "1234-5-6" , want : `Date.ParseISO: cannot parse "1234-5-6": ` + "month has wrong length\n day has wrong length" },
219
- {value : "1234-05-6" , want : `Date.ParseISO: cannot parse "1234-05-6": day has wrong length` },
220
- {value : "1234-5-06" , want : `Date.ParseISO: cannot parse "1234-5-06": month has wrong length` },
221
- {value : "1234/05/06" , want : `Date.ParseISO: cannot parse "1234/05/06": ` + "invalid year\n invalid month" },
222
- {value : "1234-0A-06" , want : `Date.ParseISO: cannot parse "1234-0A-06": invalid month` },
223
- {value : "1234-05-0B" , want : `Date.ParseISO: cannot parse "1234-05-0B": invalid day` },
224
- {value : "1234-05-06trailing" , want : `Date.ParseISO: cannot parse "1234-05-06trailing": day has wrong length` },
225
- {value : "padding1234-05-06" , want : `Date.ParseISO: cannot parse "padding1234-05-06": invalid year` },
226
- {value : "1-02-03" , want : `Date.ParseISO: cannot parse "1-02-03": year has wrong length` },
227
- {value : "10-11-12" , want : `Date.ParseISO: cannot parse "10-11-12": year has wrong length` },
228
- {value : "100-02-03" , want : `Date.ParseISO: cannot parse "100-02-03": year has wrong length` },
229
- {value : "+1-02-03" , want : `Date.ParseISO: cannot parse "+1-02-03": year has wrong length` },
230
- {value : "+10-11-12" , want : `Date.ParseISO: cannot parse "+10-11-12": year has wrong length` },
231
- {value : "+100-02-03" , want : `Date.ParseISO: cannot parse "+100-02-03": year has wrong length` },
232
- {value : "-123-05-06" , want : `Date.ParseISO: cannot parse "-123-05-06": year has wrong length` },
214
+ {value : `` , want : `date.ParseISO: cannot parse "": ` + "too short" },
215
+ {value : `-` , want : `date.ParseISO: cannot parse "-": ` + "too short" },
216
+ {value : `z` , want : `date.ParseISO: cannot parse "z": ` + "too short" },
217
+ {value : `z--` , want : `date.ParseISO: cannot parse "z--": ` + "year has wrong length\n month has wrong length\n day has wrong length" },
218
+ {value : `not-a-date` , want : `date.ParseISO: cannot parse "not-a-date": ` + "year has wrong length\n month has wrong length\n day has wrong length" },
219
+ {value : `foot-of-og` , want : `date.ParseISO: cannot parse "foot-of-og": ` + "invalid year\n invalid month\n invalid day" },
220
+ {value : `215-08-15` , want : `date.ParseISO: cannot parse "215-08-15": year has wrong length` },
221
+ {value : "1234-05" , want : `date.ParseISO: cannot parse "1234-05": incorrect length for ordinal date yyyy-ooo` },
222
+ {value : "1234-5-6" , want : `date.ParseISO: cannot parse "1234-5-6": ` + "month has wrong length\n day has wrong length" },
223
+ {value : "1234-05-6" , want : `date.ParseISO: cannot parse "1234-05-6": day has wrong length` },
224
+ {value : "1234-5-06" , want : `date.ParseISO: cannot parse "1234-5-06": month has wrong length` },
225
+ {value : "1234/05/06" , want : `date.ParseISO: cannot parse "1234/05/06": ` + "invalid year\n invalid month" },
226
+ {value : "1234-0A-06" , want : `date.ParseISO: cannot parse "1234-0A-06": invalid month` },
227
+ {value : "1234-05-0B" , want : `date.ParseISO: cannot parse "1234-05-0B": invalid day` },
228
+ {value : "1234-05-06trailing" , want : `date.ParseISO: cannot parse "1234-05-06trailing": day has wrong length` },
229
+ {value : "padding1234-05-06" , want : `date.ParseISO: cannot parse "padding1234-05-06": invalid year` },
230
+ {value : "1-02-03" , want : `date.ParseISO: cannot parse "1-02-03": year has wrong length` },
231
+ {value : "10-11-12" , want : `date.ParseISO: cannot parse "10-11-12": year has wrong length` },
232
+ {value : "100-02-03" , want : `date.ParseISO: cannot parse "100-02-03": year has wrong length` },
233
+ {value : "+1-02-03" , want : `date.ParseISO: cannot parse "+1-02-03": year has wrong length` },
234
+ {value : "+10-11-12" , want : `date.ParseISO: cannot parse "+10-11-12": year has wrong length` },
235
+ {value : "+100-02-03" , want : `date.ParseISO: cannot parse "+100-02-03": year has wrong length` },
236
+ {value : "-123-05-06" , want : `date.ParseISO: cannot parse "-123-05-06": year has wrong length` },
237
+ {value : "2018-02-03T0:0:0Z" , want : `date.ParseISO: date-time "2018-02-03T0:0:0Z": not a time` },
238
+ {value : "2018-02-03T0Z" , want : `date.ParseISO: date-time "2018-02-03T0Z": not a time` },
233
239
}
234
240
for i , c := range cases {
235
241
t .Run (fmt .Sprintf ("%d %s" , i , c .value ), func (t * testing.T ) {
0 commit comments