#日期-时间 #轻量级 #包装器 #实用工具 #当前时间

carbon

rust-lang/time的轻量级包装器。用于处理日期和时间。

1 个不稳定版本

使用旧的Rust 2015

0.1.0 2015年6月21日

#64#轻量级

21KB
368

rust-carbon

rust-carbon 是 rust-time 的轻量级包装器。用于处理日期和时间。

用法

将 rust-carbon 添加到您的 Cargo.toml 文件中。

[dependencies]
carbon = "0.1.*"

并将以下内容放在您的crate根目录中。

extern crate carbon;

概述

rust-carbon 提供了 start_of()end_of() 来获取日期和时间。您还可以通过 secondminutehourdaymonth 来修改日期和时间。

// import carbon first
use carbon::*;

// now assume that it is 2015-01-15 01:30:30.500000000

DateTime::now().start_of().second();
// => return carbon::DateTime for 2015-01-15 01:30:30.000000000
DateTime::now().start_of().minute();
// => return carbon::DateTime for 2015-01-15 01:30:00.000000000
DateTime::now().start_of().hour();
// => return carbon::DateTime for 2015-01-15 01:00:00.000000000
DateTime::now().start_of().day();
// => return carbon::DateTime for 2015-01-15 00:00:00.000000000
DateTime::now().start_of().month();
// => return carbon::DateTime for 2015-01-01 00:00:00.000000000

DateTime::now().end_of().second();
// => return carbon::DateTime for 2015-01-15 01:30:30.999999999
DateTime::now().end_of().minute();
// => return carbon::DateTime for 2015-01-15 01:30:59.999999999
DateTime::now().end_of().hour();
// => return carbon::DateTime for 2015-01-15 01:59:59.999999999
DateTime::now().end_of().day();
// => return carbon::DateTime for 2015-01-15 23:59:59.999999999
DateTime::now().end_of().month();
// => return carbon::DateTime for 2015-01-31 23:59:59.999999999

更多示例代码

链式方法调用

// now assume that it is 2015-01-15 01:30:30.500000000

DateTime::now().start_of().day().end_of().hour();
// => return carbon::DateTime for 2015-01-15 00:59:59.999999999

直接指定时间并设置 now 的时间。这对于测试很有用。

// carbon::DateTime for 2015-01-01 00:00:00
let tm = time::Tm {
  tm_sec: 0, tm_min: 0, tm_hour: 0, tm_mday: 1, tm_mon: 0, tm_year: 115, tm_wday: 4, tm_yday: 0, tm_isdst: 0, tm_utcoff: 0, tm_nsec: 0 };
}

let test_now = DateTime::create_from_tm(tm);
DateTime::set_test_now(test_now);
DateTime::now();
// => return carbon::DateTime for 2015-01-01 00:00:00

rust-carbon 是 rust-time 的轻量级包装器。您可以轻松访问 time::Tm

// now assume that it is 2015-01-15 01:30:30.500000000

DateTime::now().tm.strftime("%Y-%m-%d %H:%M:%S").ok().unwrap().to_string();
// => return string "2015-01-15 01:30:30"

use std::ops::{Add, Sub};

let hour = time::Duration::hours(1);
DateTime::now().tm.add(hour)
// return time::Tm for 2015-01-15 02:30:30.500000000

已知问题

  • rust-carbon 只能处理UTC。
  • 允许修改 start_of().year()

依赖关系

~0.6–1MB
~15K SLoC