簡體   English   中英

如何在Rust中獲得持續時間(以毫秒為單位)

[英]How do I get a Duration as a number of milliseconds in Rust

我有time::Duration 如何獲得此持續時間表示的毫秒數(整數)? 曾經有一個num_milliseconds()函數,但不再可用。

這是我想出的解決方案,將秒數乘以十億,將其加到納秒,然后除以1e6。

let nanos = timeout_duration.subsec_nanos() as u64;
let ms = (1000*1000*1000 * timeout_duration.as_secs() + nanos)/(1000 * 1000);

從crates.io上的時間箱使用time::Duration ,它提供了num_milliseconds()方法。

從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;

也可以看看:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM