66次发布

0.4.38 2024年4月15日
0.4.37 2024年3月27日
0.4.34 2024年2月11日
0.4.31 2023年9月15日
0.1.3 2014年11月28日

#1 in 日期和时间

Download history 1807526/week @ 2024-04-26 1792915/week @ 2024-05-03 1855166/week @ 2024-05-10 1856278/week @ 2024-05-17 1798897/week @ 2024-05-24 1983151/week @ 2024-05-31 1937183/week @ 2024-06-07 1903219/week @ 2024-06-14 1965613/week @ 2024-06-21 1848254/week @ 2024-06-28 1883248/week @ 2024-07-05 1931771/week @ 2024-07-12 1994339/week @ 2024-07-19 1972043/week @ 2024-07-26 1971418/week @ 2024-08-02 1710551/week @ 2024-08-09

每月7,993,752次下载
用于22,325个Crates(直接使用11,022个)

MIT/Apache

1MB
19K SLoC

Chrono:具有时区感知的日期和时间处理

Chrono GitHub Actions Chrono on crates.io Chrono on docs.rs Chat codecov.io

Chrono旨在提供在推算儒略历上对日期和时间进行正确操作所需的所有功能

  • DateTime类型默认具有时区感知,并具有独立的时区无感知类型。
  • 可能产生无效或不明确日期和时间的操作返回OptionMappedLocalTime
  • 具有受strftime启发的日期和时间格式化语法的可配置解析和格式化。
  • Local时区与操作系统的当前时区一起工作。
  • 类型和操作实现得相当高效。

chrono默认不包含时区数据,以限制二进制文件大小。使用配套的crate Chrono-TZtzfile以获得完整的时区支持。

文档

请参阅docs.rs以获取API参考。

限制

  • 仅支持推算儒略历(即扩展以支持更早的日期)。
  • 日期类型限于公历纪元约 +/- 262,000年。
  • 时间类型限于纳秒精度。
  • 可以表示闰秒,但Chrono不完全支持它们。请参阅闰秒处理

Crate功能

默认功能

  • alloc:启用依赖于分配的功能(主要是字符串格式化)。
  • std:启用依赖于标准库的功能。这是alloc的超集,并添加了与标准库类型和特性的互操作性。
  • clock:启用读取本地时区(Local)。这是now的超集。
  • now:启用读取系统时间(now)。
  • wasmbind:与wasm32目标的JS Date API进行接口。

可选功能

  • serde:通过serde启用序列化/反序列化。
  • rkyv:已弃用,请使用rkyv-*功能。
  • rkyv-16:通过rkyv启用序列化/反序列化,使用16位整数对整数*size类型。
  • rkyv-32:通过rkyv启用序列化/反序列化,使用32位整数对整数*size类型。
  • rkyv-64:通过rkyv启用序列化/反序列化,使用64位整数对整数*size类型。
  • rkyv-validation:通过bytecheck启用rkyv验证支持。
  • arbitrary:使用Arbitrary crate构建类型的任意实例。
  • unstable-locales:启用本地化。这添加了带有_localized后缀的各种方法。实现和API可能会更改,甚至可能在补丁版本中删除。欢迎反馈。
  • oldtime:此功能不再有任何影响;它曾提供与time 0.1 crate的兼容性。

注意:功能rkyv{,-16,-32,-64}是互斥的。

Rust版本要求

当前支持的最小Rust版本(MSRV)是Rust 1.61.0

MSRV在CI中明确测试。它可能在次要版本中提升,但这是不会轻易发生的。

许可证

本项目许可采用以下任一许可

任由您选择。

依赖关系

~0.1–7MB
~24K SLoC