一種是采用系統(tǒng)庫timestamp1揉阎,一種是采用第三方庫timestamp2庄撮,但是由于time庫已經(jīng)不在維護(hù),所以推薦使用官方庫毙籽。
目前rust的時(shí)間庫為chrone
use std::time::{SystemTime, UNIX_EPOCH};
extern crate time;
fn timestamp2() -> i64 {
let timespec = time::get_time();
timespec.sec * 1000 + (timespec.nsec as f64 / 1000.0 / 1000.0) as i64
}
fn timestamp1() -> i64 {
let start = SystemTime::now();
let since_the_epoch = start
.duration_since(UNIX_EPOCH)
.expect("Time went backwards");
let ms = since_the_epoch.as_secs() as i64 * 1000i64 + (since_the_epoch.subsec_nanos() as f64 / 1_000_000.0) as i64;
ms
}
fn main() {
let ts1 = timestamp1();
println!("TimeStamp1: {}", ts1);
let ts2 = timestamp2();
println!("TimeStamp2: {}", ts2);
}
不過雖然time庫不在維護(hù)洞斯,又出現(xiàn)一個(gè)新的時(shí)間庫chrone
而且用法更簡單,推薦如下這種方式
use chrono::prelude::*;
extern crate chrono;
fn main() {
let dt = Local::now();
println!("dt: {}", dt);
println!("dt: {}", dt.timestamp_millis());
}
官網(wǎng)地址:https://github.com/chronotope/chrono/