我有一个time::Duration.如何将此持续时间表示的毫秒数作为整数?曾经有一个num_milliseconds()功能,但它不再可用.
小智 8
从 Rust 1.33.0 开始,有一个as_millis()函数:
use std::time::SystemTime;
fn main() {
    let now = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).expect("get millis error");
    println!("now millis: {}", now.as_millis());
}
从 Rust 1.27.0 开始,有一个subsec_millis()函数:
use std::time::SystemTime;
fn main() {
    let since_the_epoch = SystemTime::now().duration_since(SystemTime::UNIX_EPOCH).expect("get millis error");
    let seconds = since_the_epoch.as_secs();
    let subsec_millis = since_the_epoch.subsec_millis() as u64;
    println!("now millis: {}", seconds * 1000 + subsec_millis);
}
从 Rust 1.8 开始,有一个subsec_nanos函数:
let in_ms = since_the_epoch.as_secs() * 1000 +
            since_the_epoch.subsec_nanos() as u64 / 1_000_000;
也可以看看:
这是我想出的解决方案,即将秒乘以十亿,加上纳秒,然后除以 1e6。
let nanos = timeout_duration.subsec_nanos() as u64;
let ms = (1000*1000*1000 * timeout_duration.as_secs() + nanos)/(1000 * 1000);