4 个版本
0.1.3 | 2022 年 9 月 27 日 |
---|---|
0.1.2 | 2021 年 7 月 21 日 |
0.1.1 | 2021 年 7 月 21 日 |
0.1.0 | 2019 年 9 月 25 日 |
#90 在 日期和时间
116,564 每月下载量
用于 91 个 crate (4 直接)
21KB
373 行
安装
将依赖添加到 Cargo.toml
# Cargo.toml
[dependencies]
now = "0.1"
或者,您可以使用 cargo-edit 通过
cargo add now
使用
特质 TimeZoneNow
提供了对 chrono::Timezone
的方便且易于阅读的方法
use chrono::FixedOffset;
use now::TimeZoneNow;
let offset = FixedOffset::east(60 * 60 * 8);
offset.now(); // 2021-07-21T12:48:58.626947+08:00
offset.beginning_of_minute(); // 2021-07-21T12:48:00+08:00
offset.beginning_of_hour(); // 2021-07-21T12:00:00+08:00
offset.beginning_of_day(); // 2021-07-21T00:00:00+08:00
offset.beginning_of_week(); // 2021-07-19T00:00:00+08:00
offset.beginning_of_month(); // 2021-07-01T00:00:00+08:00
offset.beginning_of_quarter(); // 2021-07-01T00:00:00+08:00
offset.beginning_of_year(); // 2021-01-01T00:00:00+08:00
offset.end_of_minute(); // 2021-07-21T12:48:59.999999999+08:00
offset.end_of_hour(); // 2021-07-21T12:59:59.999999999+08:00
offset.end_of_day(); // 2021-07-21T23:59:59.999999999+08:00
offset.end_of_week(); // 2021-07-25T23:59:59.999999999+08:00
offset.end_of_month(); // 2021-07-31T23:59:59.999999999+08:00
offset.end_of_quarter(); // 2021-09-30T23:59:59.999999999+08:00
offset.end_of_year(); // 2021-12-31T23:59:59.999999999+08:00
并且特质 DateTimeNow
支持以下方法 chrono:DateTime<T:Timezone>
use now::DateTimeNow;
let time = Utc::now(); // 2021-07-21T05:18:25.011480Z
time.beginning_of_minute(); // 2021-07-21T05:18:00Z
time.beginning_of_hour(); // 2021-07-21T05:00:00Z
time.beginning_of_day(); // 2021-07-21T00:00:00Z
time.beginning_of_week(); // 2021-07-19T00:00:00Z
time.beginning_of_month(); // 2021-07-01T00:00:00Z
time.beginning_of_quarter(); // 2021-07-01T00:00:00Z
time.beginning_of_year(); // 2021-01-01T00:00:00Z
time.end_of_minute(); // 2021-07-21T05:18:59.999999999Z
time.end_of_hour(); // 2021-07-21T05:59:59.999999999Z
time.end_of_day(); // 2021-07-21T23:59:59.999999999Z
time.end_of_week(); // 2021-07-25T23:59:59.999999999Z
time.end_of_month(); // 2021-07-31T23:59:59.999999999Z
time.end_of_quarter(); // 2021-09-30T23:59:59.999999999Z
time.end_of_year(); // 2021-12-31T23:59:59.999999999Z
因为 now 基于 chrono
,所以像 闰年 和 昼夜时间(由 chrono-tz
提供) 这样的功能也由 now 支持。
let naive_date_time = NaiveDate::from_ymd(2024, 2, 10).and_hms(0, 0, 1);
let date_time: DateTime<Utc> = Utc.from_local_datetime(&naive_date_time).unwrap();
let time = date_time.end_of_month();
assert_eq!(29, time.day()); // 2024 is leap year
依赖
~1–7.5MB
~26K SLoC