toolcraft_utils/utils/
time_util.rs

1use std::time::{Duration, SystemTime, UNIX_EPOCH};
2
3use time::{OffsetDateTime, format_description::well_known::Rfc3339};
4
5pub fn get_current_timestamp_secs() -> i64 {
6    let duration = get_current_duration();
7    duration.as_secs() as i64
8}
9
10pub fn get_current_timestamp_millis() -> i64 {
11    let duration = get_current_duration();
12    duration.as_millis() as i64
13}
14
15pub fn timestamp_to_rfc3339(timestamp: i64) -> String {
16    let datetime = timestamp_to_datetime(timestamp);
17    datetime.format(&Rfc3339).unwrap()
18}
19
20pub fn timestamp_to_date(timestamp: i64) -> String {
21    let datetime = timestamp_to_datetime(timestamp);
22    datetime.date().to_string()
23}
24
25fn get_current_duration() -> Duration {
26    let now = SystemTime::now();
27    now.duration_since(UNIX_EPOCH).unwrap()
28}
29
30fn timestamp_to_datetime(timestamp: i64) -> OffsetDateTime {
31    OffsetDateTime::from_unix_timestamp(timestamp).unwrap()
32}