@@ -257,23 +257,24 @@ end
257
257
258
258
# ISO, YMD
259
259
_DEFAULT_TYPE_MAP[:timestamptz ] = ZonedDateTime
260
- const TIMESTAMPTZ_FORMATS = Dict (
261
- ZonedDateTime => (
262
- dateformat " y-m-d HH:MM:SSz" ,
263
- dateformat " y-m-d HH:MM:SS.sz" ,
264
- dateformat " y-m-d HH:MM:SS.ssz" ,
265
- dateformat " y-m-d HH:MM:SS.sssz" ,
266
- ),
267
- UTCDateTime => (
268
- dateformat " y-m-d HH:MM:SS" ,
269
- dateformat " y-m-d HH:MM:SS.s" ,
270
- dateformat " y-m-d HH:MM:SS.ss" ,
271
- dateformat " y-m-d HH:MM:SS.sss" ,
272
- ),
260
+ const TIMESTAMPTZ_ZDT_FORMATS = (
261
+ dateformat " y-m-d HH:MM:SSz" ,
262
+ dateformat " y-m-d HH:MM:SS.sz" ,
263
+ dateformat " y-m-d HH:MM:SS.ssz" ,
264
+ dateformat " y-m-d HH:MM:SS.sssz" ,
273
265
)
266
+ const TIMESTAMPTZ_UTC_FORMATS = (
267
+ dateformat " y-m-d HH:MM:SS" ,
268
+ dateformat " y-m-d HH:MM:SS.s" ,
269
+ dateformat " y-m-d HH:MM:SS.ss" ,
270
+ dateformat " y-m-d HH:MM:SS.sss" ,
271
+ )
272
+
273
+ timestamptz_formats (:: Type{ZonedDateTime} ) = TIMESTAMPTZ_ZDT_FORMATS
274
+ timestamptz_formats (:: Type{UTCDateTime} ) = TIMESTAMPTZ_UTC_FORMATS
274
275
275
276
function _pqparse (:: Type{T} , str:: AbstractString ) where T<: Union{UTCDateTime, ZonedDateTime}
276
- formats = TIMESTAMPTZ_FORMATS[T]
277
+ formats = timestamptz_formats (T)
277
278
for fmt in formats[1 : (end - 1 )]
278
279
parsed = tryparse (T, str, fmt)
279
280
parsed != = nothing && return parsed
0 commit comments