<Ct: rust> [ 2023-06-30 ] Rust Chrono & Chrono-tz Cheatsheet
자주 헷갈림~
DateTime Conversion Utils
use chrono::{
TimeZone, DateTime,
Date, Utc,
};
use chrono_tz::{
Tz, Asia::Seoul,
};
pub type KstDate = Date<Tz>;
pub type KstDateTime = DateTime<Tz>;
pub fn now_utc() -> DateTime<Utc> {
Utc::now()
}
pub fn now_kst() -> DateTime<Tz> {
chrono::Local::now().with_timezone(&Seoul)
}
pub fn anything_to_utc<T: TimeZone>(t: DateTime<T>) -> Result<DateTime<Utc>, Box<dyn std::error::Error>> {
let utc: DateTime<Utc> = t.with_timezone(&Utc);
Ok(utc)
}
pub fn anything_to_kst<T: TimeZone>(t: DateTime<T>) -> Result<DateTime<Tz>, Box<dyn std::error::Error>> {
let kst: DateTime<Tz> = t.with_timezone(&Seoul);
Ok(kst)
}