![](/img/trans.png)
[英]How do I convert a chrono `DateTime<UTC>` instance to `DateTime<Local>`?
[英]update year in a chrono DateTime instance
如何更改DateTime<FixedOffset>
实例中的年份(来自 rust crate chrono
)?
也就是说,创建一个DateTime<FixedOffset>
的新实例,它从旧实例中复制月份和日期。
换句话说,我将如何完成以下代码:
fn datetime_set_year(
datetime: &DateTime<FixedOffset>,
year: &i32
) -> DateTime<FixedOffset>
代码可以忽略像闰日这样的例外情况(如果可能的话)。
传递的DateTime<FixedOffset>
实例被分解为Date<FixedOffset>
实例和NaiveTime
实例。 然后FixedOffset.ymd
和.and_time
使用传递的year
创建一个新的DateTime<FixedOffset>
实例。
fn datetime_with_year(datetime: &DateTime<FixedOffset>, year: i32) -> DateTime<FixedOffset> {
let date: Date<FixedOffset> = datetime.date();
let time: NaiveTime = datetime.time();
let fixedoffset: &FixedOffset = datetime.offset();
match fixedoffset.ymd(year, date.month(), date.day()).and_time(time) {
Some(datetime_) => {
eprintln!("fixedoffset.ymd() Some {:?}", datetime_);
datetime_
}
None => {
eprintln!("fixedoffset.ymd() None");
datetime.clone()
}
}
}
更新:或按照@Jmb 的建议使用datetime.with_year(year)
。
呵呵😑
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.