From 0cd74376a7d56e504e3cf44057d67c1442a9627f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20R=C3=B6ssler?= Date: Wed, 9 Feb 2022 12:20:56 +0100 Subject: [PATCH] use rfc3339/iso 8601 --- .../src/apps/demo/widget_gallery/serde_date_format.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/egui_demo_lib/src/apps/demo/widget_gallery/serde_date_format.rs b/egui_demo_lib/src/apps/demo/widget_gallery/serde_date_format.rs index 9c0e1704..6bb2d246 100644 --- a/egui_demo_lib/src/apps/demo/widget_gallery/serde_date_format.rs +++ b/egui_demo_lib/src/apps/demo/widget_gallery/serde_date_format.rs @@ -1,13 +1,11 @@ -use chrono::{Date, NaiveDate, Utc}; +use chrono::{Date, DateTime, Utc}; use serde::{self, Deserialize, Deserializer, Serializer}; -const FORMAT: &str = "%d.%m.%Y"; - pub fn serialize(date: &Date, serializer: S) -> Result where S: Serializer, { - let s = format!("{}", date.format(FORMAT)); + let s = date.and_hms(0, 0, 0).to_rfc3339(); serializer.serialize_str(&s) } @@ -17,7 +15,7 @@ where { let s = String::deserialize(deserializer)?; - NaiveDate::parse_from_str(&s, FORMAT) - .map(|naive_date| Date::from_utc(naive_date, Utc)) + DateTime::parse_from_rfc3339(&s) + .map(|date_time| date_time.date().with_timezone(&Utc)) .map_err(serde::de::Error::custom) }