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()
来获取日期和时间。您还可以通过 second
、minute
、hour
、day
和 month
来修改日期和时间。
// 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