Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Time 如何将Unix时间/自历元以来的时间转换为标准日期和时间?_Time_Rust_Rust Chrono - Fatal编程技术网

Time 如何将Unix时间/自历元以来的时间转换为标准日期和时间?

Time 如何将Unix时间/自历元以来的时间转换为标准日期和时间?,time,rust,rust-chrono,Time,Rust,Rust Chrono,我用的是chrono板条箱;经过一番挖掘,我发现DateTime类型有一个函数timestamp(),它可以生成类型为i64的历元时间。但是,我无法找到如何将其转换回DateTime extern crate chrono; use chrono::*; fn main() { let date = chrono::UTC.ymd(2020, 1, 1).and_hms(0, 0, 0); println!("{}", start_date.timestamp());

我用的是chrono板条箱;经过一番挖掘,我发现
DateTime
类型有一个函数
timestamp()
,它可以生成类型为
i64
的历元时间。但是,我无法找到如何将其转换回
DateTime

extern crate chrono;
use chrono::*;

fn main() {
    let date = chrono::UTC.ymd(2020, 1, 1).and_hms(0, 0, 0);
    println!("{}", start_date.timestamp());
    // ...how to convert it back?
}

首先需要创建一个
DateTime
,然后再次使用它创建一个
DateTime

extern crate chrono;
use chrono::prelude::*;

fn main() {
    let datetime = Utc.ymd(2020, 1, 1).and_hms(0, 0, 0);
    let timestamp = datetime.timestamp();
    let naive_datetime = NaiveDateTime::from_timestamp(timestamp, 0);
    let datetime_again: DateTime<Utc> = DateTime::from_utc(naive_datetime, Utc);

    println!("{}", datetime_again);
}
extern板条箱计时;
使用chrono::前奏::*;
fn main(){
设datetime=Utc.ymd(2020,1,1)和_hms(0,0,0);
让timestamp=datetime.timestamp();
让naive_datetime=NaiveDateTime::from_timestamp(timestamp,0);
再次使用datetime:datetime=datetime::from_utc(naive_datetime,utc);
println!(“{}”,再次是datetime_);
}
您可以使用板条箱:

extern板条箱解析持续时间;
使用parse_duration::parse;
使用std::time::Duration;
fn main(){
//自UNIX_纪元以来1587971749秒
assert_eq!(解析(“1587971749”),Ok(持续时间::new(1587971749,0));
//一天不到一小时
assert_eq!(解析(“1天-1小时”),Ok(持续时间::new(82_800,0));
//使用指数
断言(
解析(“1.26e-1天”),
正常(持续时间:新(10_886,400_000_000))
);
//额外的东西将被忽略
断言(
解析(“持续时间:1小时15分29秒”),
正常(持续时间:新的(4529,0))
);
}

我在中找到了类似的用法,但显然您的回答更简洁友好。非常感谢。