1use chrono::{DateTime, Local};
2
3pub fn get_unix_day_from_local_datetime(datetime: DateTime<Local>) -> i32 {
4 let utc_epoch = datetime.to_utc().timestamp(); let offset_seconds = datetime.offset().local_minus_utc(); let epoch_with_local_offset = utc_epoch + offset_seconds as i64;
8 (epoch_with_local_offset / 3600 / 24) as i32
9}
10
11pub fn get_local_datetime_form_unix_day(day: i32) -> DateTime<Local> {
12 let offset_seconds = Local::now().offset().local_minus_utc();
14 let sec: i64 = day as i64 * 3600 * 24 - offset_seconds as i64;
15 let nano: u32 = 0;
16 let datetime = DateTime::from_timestamp(sec, nano).expect("this should never happen!!");
17 let datetime: DateTime<Local> = datetime.into();
18 datetime
20}