Skip to main content

mycommon_utils/utils/
time_util.rs

1// 在 src/time_utils.rs 文件中定义时间工具模块
2
3use chrono::{DateTime, Utc, Local, Duration, NaiveDateTime};
4use sea_orm::ActiveValue;
5
6// pub fn get_utc_now() -> NaiveDateTime {
7//     Utc::now().naive_utc()
8// }
9
10// 获取当前本地时间
11pub fn get_local_now() -> DateTime<Local> {
12    Local::now()
13}
14
15pub fn get_local_now_naive_datetime() -> NaiveDateTime {
16    Local::now().naive_local()
17}
18
19// 时间运算:在当前时间基础上加上指定的天数
20pub fn add_days_to_local_now(days: i64) -> DateTime<Local> {
21    Local::now() + Duration::days(days)
22}
23
24// 时间运算:计算两个UTC时间之间的差值(天数)
25pub fn diff_days_utc(start: DateTime<Utc>, end: DateTime<Utc>) -> i64 {
26    (end - start).num_days()
27}
28
29//将字符转换成时间
30pub fn parse_from_str(s: &str) -> Option<DateTime<Utc>> {
31    DateTime::parse_from_str(s, "%Y%m%d%H%M%S")
32        .ok() // 将 Result<DateTime<Utc>, _> 转换为 Option<DateTime<Utc>>
33        .map(|datetime| datetime.with_timezone(&Utc)) // 将 Local 时间转换为 Utc 时间
34}
35pub fn get_now_time() -> ActiveValue<Option<chrono::NaiveDateTime>> {
36    ActiveValue::Set(Some(Utc::now().naive_utc()))
37}