fantasy_util/time/
system_time.rs

1use std::time::{SystemTime, UNIX_EPOCH};
2
3pub struct SystemLocalTime {}
4
5/// 为了美观获取当前时间的包装实现
6impl SystemLocalTime {
7    ///获取当前的unix纳秒时间
8    /// ## Usage
9    /// ```
10    /// use fantasy_util::time::system_time::SystemLocalTime;
11    /// let nanos:u128 = SystemLocalTime::unix_nanos();
12    /// ```
13    pub fn unix_nanos() -> u128 {
14        SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_nanos()
15    }
16
17    ///获取当前的unix微秒时间
18    /// ## Usage
19    /// ```
20    /// use fantasy_util::time::system_time::SystemLocalTime;
21    /// let micros:u128 = SystemLocalTime::unix_micros();
22    /// ```
23    pub fn unix_micros() -> u128 {
24        SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_micros()
25    }
26
27    ///获取当前的unix毫秒时间
28    /// ## Usage
29    /// ```
30    /// use fantasy_util::time::system_time::SystemLocalTime;
31    /// let mills:u64 = SystemLocalTime::unix_mills();
32    /// ```
33    pub fn unix_mills() -> u64 {
34        SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_millis() as u64
35    }
36
37    ///获取当前的unix秒时间
38    /// ## Usage
39    /// ```
40    /// use fantasy_util::time::system_time::SystemLocalTime;
41    /// let mills:u64 = SystemLocalTime::unix_secs();
42    /// ```
43    pub fn unix_secs() -> u64 {
44        SystemTime::now().duration_since(UNIX_EPOCH).unwrap().as_secs()
45    }
46}
47
48
49#[cfg(test)]
50mod tests {
51    use crate::time::system_time::SystemLocalTime;
52
53    #[test]
54    fn it_works() {
55        println!("{:X}", u128::max_value());
56        println!("{:X}", SystemLocalTime::unix_nanos());
57        println!("{:X}", SystemLocalTime::unix_micros());
58        println!("{:X}", SystemLocalTime::unix_mills());
59        println!("{:X}", SystemLocalTime::unix_secs());
60        assert_eq!(2 + 2, 4);
61    }
62}