Time 如何将Unix时间/自历元以来的时间转换为标准日期和时间?
我用的是chrono板条箱;经过一番挖掘,我发现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());
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))
);
}
我在中找到了类似的用法,但显然您的回答更简洁友好。非常感谢。