autopush_common/util/
timing.rs1use chrono::prelude::*;
2
3pub fn sec_since_epoch() -> u64 {
5 Utc::now().timestamp() as u64
6}
7
8pub fn ms_since_epoch() -> u64 {
10 Utc::now().timestamp_millis() as u64
11}
12
13pub fn ms_utc_midnight() -> u64 {
15 let now = Utc::now();
16 Utc.with_ymd_and_hms(now.year(), now.month(), now.day(), 0, 0, 0)
17 .single()
18 .expect("Clock error") .timestamp_millis() as u64
20}
21
22#[allow(dead_code)]
24pub fn us_since_epoch() -> u64 {
25 Utc::now().timestamp_micros() as u64
26}
27
28#[allow(dead_code)]
32pub fn date_string_from_systemtime(ts: std::time::SystemTime) -> String {
33 let dt: chrono::DateTime<chrono::Utc> = ts.into();
34 dt.format("%Y-%m-%d %H:%M:%S.%f").to_string()
35}
36
37#[allow(dead_code)]
41pub fn date_string_from_utc_ms(offset: u64) -> String {
42 let utc = std::time::SystemTime::UNIX_EPOCH + std::time::Duration::from_millis(offset);
43 date_string_from_systemtime(utc)
44}