![](/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.