You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rust中如何将u64类型Unix时间戳转为Chrono的DateTime<Utc>类型

Rust 中u64类型Unix时间戳转Chrono DateTime实现方法

直接使用Chrono内置的时间戳构造方法即可,补全后的完整代码如下:

let timestamp_u64 = 1657113606;
let date_time = chrono::DateTime::from_timestamp(timestamp_u64 as i64, 0)
    .expect("常规业务范围内的Unix时间戳不会超出合法取值范围");

注意事项

  • 上述写法适用于Chrono 0.4.20及以上的稳定版本,方法第一个参数接收i64类型的Unix秒级时间戳,第二个参数接收u32类型的纳秒偏移量,秒级时间戳场景下纳秒偏移直接传0即可。
  • 如果你使用的是0.4.20之前的旧版本Chrono,可以替换为旧API写法:
let date_time = chrono::Utc.timestamp(timestamp_u64 as i64, 0);
  • 不要直接把毫秒/微秒/纳秒级的时间戳强转后传入,需要先做单位拆分:比如毫秒级时间戳要先除以1000得到秒数,剩余的毫秒值乘以1_000_000得到纳秒值再传入,否则会得到错误的时间结果。
  • 由于u64的正数取值范围大于i64,若传入的时间戳数值超过i64::MAX(对应公元292277026596年的时间点,常规业务场景完全不会触及),转换会返回None,可根据自身业务场景做对应错误处理。

内容的提问来源于stack exchange,提问作者alextes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 14:48:15