aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMax Audron <audron@cocaine.farm>2021-01-04 18:22:27 +0100
committerMax Audron <audron@cocaine.farm>2021-01-04 18:22:27 +0100
commit263b6a570cf12779d7c955065ff6004c966ff4ae (patch)
tree35f14d84af1b99c212a2a3679bc41e57569779ba /src
parentupdate dependencies (diff)
fix parsing of datetime when value is -1
Diffstat (limited to '')
-rw-r--r--src/primitive/datetime.rs10
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 => {