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 6bb2d246..328be38d 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,11 +1,13 @@ -use chrono::{Date, DateTime, Utc}; +use chrono::{Date, NaiveDate, Utc}; use serde::{self, Deserialize, Deserializer, Serializer}; +const FORMAT: &str = "%Y-%m-%d"; + pub fn serialize(date: &Date, serializer: S) -> Result where S: Serializer, { - let s = date.and_hms(0, 0, 0).to_rfc3339(); + let s = format!("{}", date.format(FORMAT)); serializer.serialize_str(&s) } @@ -15,7 +17,7 @@ where { let s = String::deserialize(deserializer)?; - DateTime::parse_from_rfc3339(&s) - .map(|date_time| date_time.date().with_timezone(&Utc)) + NaiveDate::parse_from_str(&s, FORMAT) + .map(|naive_date| Date::from_utc(naive_date, Utc)) .map_err(serde::de::Error::custom) } diff --git a/egui_extras/src/datepicker/button.rs b/egui_extras/src/datepicker/button.rs index 724bbb50..8cce4fed 100644 --- a/egui_extras/src/datepicker/button.rs +++ b/egui_extras/src/datepicker/button.rs @@ -70,8 +70,7 @@ impl<'a> Widget for DatePickerButton<'a> { .get_persisted::(id) .unwrap_or_default(); - //TODO: Internationalization - let mut text = RichText::new(format!("{} 📆", self.selection.format("%d.%m.%Y"))); + let mut text = RichText::new(format!("{} 📆", self.selection.format("%Y-%m-%d"))); let visuals = ui.visuals().widgets.open; if button_state.picker_visible { text = text.color(visuals.text_color());