#日期-时间 #日期 #时间 #日历

carbono

Carbono 是一个简单的 Rust API 扩展,用于 chrono DateTime。

2 个版本

0.1.1 2023 年 5 月 5 日
0.1.0 2023 年 5 月 5 日

#346日期和时间

MIT 许可证

29KB
682 代码行

Carbono

crates.io cargo build docs.rs crates.io

Carbono 是一个简单的 Rust API 扩展,用于 chrono DateTime。

[dependencies]
carbono = "0.1"

入门

use carbono::Carbono;

fn main() {
    let carbono = Carbono::now(); // 2022-12-15 12:30:00

    println!("{}", carbono); // 2022-12-15 12:30:00 UTC

    assert_eq!(carbono.timestamp(), 1671107400);

    assert_eq!(carbono.rfc3339(), "2022-12-15T12:30:00+00:00");
    assert_eq!(carbono.rfc2822(), "Thu, 15 Dec 2022 12:30:00 +0000");

    assert_eq!(carbono.year(), 2022);
    assert_eq!(carbono.month(), 12);
    assert_eq!(carbono.day(), 15);
    assert_eq!(carbono.hour(), 12);
    assert_eq!(carbono.minute(), 30);
    assert_eq!(carbono.second(), 0);

    assert_eq!(carbono.datetime(), "2022-12-15 12:30:00");

    assert_eq!(carbono.date(), "2022-12-15");
    assert_eq!(carbono.time(), "12:30:00");

    assert_eq!(format!("{:?}", carbono.iso_week()), "2022-W50");

    assert_eq!(carbono.weekday(), 3); // Thursday

    assert_eq!(carbono.is_wednesday(), false);
    assert_eq!(carbono.is_thursday(), true);
    assert_eq!(carbono.is_friday(), false);

    assert_eq!(carbono.is_past(), true);
    assert_eq!(carbono.is_future(), false);

    assert_eq!(carbono.is_today(), true); // 2022-12-15

    assert_eq!(carbono.add_day().is_today(), false); // 2022-12-16

    assert_eq!(carbono.add_year().add_month().date(), "2024-01-15");

    assert_eq!(carbono.start_year().datetime(), "2022-01-01 00:00:00");
}

修改日期和/或时间

  • add_year()
  • sub_year()
  • add_years(years: i32)
  • sub_years(years: i32)
  • add_month()
  • sub_month()
  • add_months(months: i32)
  • sub_months(months: i32)
  • add_week()
  • sub_week()
  • add_weeks(weeks: i64)
  • sub_weeks(weeks: i64)
  • add_day()
  • sub_day()
  • add_days(days: i64)
  • sub_days(days: i64)
  • add_hour()
  • sub_hour()
  • add_hours(hours: i64)
  • sub_hours(hours: i64)
  • add_minute()
  • sub_minute()
  • add_minutes(minutes: i64)
  • sub_minutes(minutes: i64)
  • add_second()
  • sub_second()
  • add_seconds(seconds: i64)
  • sub_seconds(seconds: i64)

移动到周期开始/结束

  • start_year
  • start_month
  • start_day
  • start_hour
  • start_minute
  • end_year
  • end_month
  • end_day
  • end_hour
  • end_minute

依赖项

~1.5MB
~19K SLoC