diff options
| author | Max Audron <audron@cocaine.farm> | 2021-01-04 18:22:27 +0100 |
|---|---|---|
| committer | Max Audron <audron@cocaine.farm> | 2021-01-04 18:22:27 +0100 |
| commit | 263b6a570cf12779d7c955065ff6004c966ff4ae (patch) | |
| tree | 35f14d84af1b99c212a2a3679bc41e57569779ba /src/primitive/datetime.rs | |
| parent | update dependencies (diff) | |
fix parsing of datetime when value is -1
Diffstat (limited to '')
| -rw-r--r-- | src/primitive/datetime.rs | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/primitive/datetime.rs b/src/primitive/datetime.rs index f3ace1d..fadd6a5 100644 --- a/src/primitive/datetime.rs +++ b/src/primitive/datetime.rs @@ -76,10 +76,18 @@ impl Deserialize for OffsetDateTime { let zone = TimeSpec::from(zone as i8); + // Default to unix epoch when one of these is set to -1 + if julian_day == -1 || millis_of_day == -1 { + return Ok((pos, OffsetDateTime::unix_epoch())); + } + let offset: UtcOffset; match zone { TimeSpec::LocalUnknown | TimeSpec::LocalStandard | TimeSpec::LocalDST => { - offset = UtcOffset::try_current_local_offset()? + offset = UtcOffset::try_current_local_offset().unwrap_or_else(|_| { + log::warn!("could not get local offset defaulting to utc"); + UtcOffset::UTC + }) } TimeSpec::UTC => offset = UtcOffset::UTC, TimeSpec::OffsetFromUTC => { |
