Fix vCard 4 REV timestamp parsing

This commit is contained in:
2026-03-28 21:43:55 -05:00
parent d1318acbf9
commit d968486473

View File

@@ -184,10 +184,10 @@ const supportedParams: Table[string, HashSet[VC4_PropertyName]] = [
].toTable ].toTable
const TIMESTAMP_FORMATS = [ const TIMESTAMP_FORMATS = [
"yyyyMMdd'T'hhmmssZZZ", "yyyyMMdd'T'HHmmssZZZ",
"yyyyMMdd'T'hhmmssZZ", "yyyyMMdd'T'HHmmssZZ",
"yyyyMMdd'T'hhmmssZ", "yyyyMMdd'T'HHmmssZ",
"yyyyMMdd'T'hhmmss" "yyyyMMdd'T'HHmmss"
] ]
const TEXT_CHARS = WSP + NON_ASCII + { '\x21'..'\x2B', '\x2D'..'\x7E' } const TEXT_CHARS = WSP + NON_ASCII + { '\x21'..'\x2B', '\x2D'..'\x7E' }
@@ -472,7 +472,7 @@ proc parseDateAndOrTime[T](
proc parseTimestamp(value: string): DateTime = proc parseTimestamp(value: string): DateTime =
for fmt in TIMESTAMP_FORMATS: for fmt in TIMESTAMP_FORMATS:
try: return value.parse(fmt) try: return value.parse(fmt, utc())
except: discard except: discard
raise newException(VCardParsingError, "unable to parse timestamp value: " & value) raise newException(VCardParsingError, "unable to parse timestamp value: " & value)