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) }