28个版本 (5 breaking)
0.6.14 | 2022年8月13日 |
---|---|
0.6.12 | 2022年7月26日 |
0.6.7 | 2022年3月23日 |
#18 in 日期和时间
125,121 monthly downloads
用于 83 个crates (20 directly)
230KB
4K SLoC
tz-rs
A pure Rust reimplementation of libc functions localtime
, gmtime
and mktime
.
This crate allows to convert between a Unix timestamp and a calendar time exprimed in the proleptic gregorian calendar with a provided time zone.
Time zones are provided to the library with a POSIX TZ
string which can be read from the environment.
Two formats are currently accepted for the TZ
string
std offset[dst[offset][,start[/time],end[/time]]]
providing a time zone description,file
or:file
providing the path to a TZif file, which is absolute or relative to the system timezone directory.
See also the Linux manual page of tzset(3) and the glibc documentation of the TZ
environment variable.
上下文
Calls to libc localtime_r
and other related functions from Rust are not safe in a multithreaded application, because they may internally set the TZ
environment variable with the setenv
function, which is not thread-safe.
请参阅RUSTSEC-2020-0071和RUSTSEC-2020-0159获取更多信息。
文档
文档托管在docs.rs。
平台支持
此crate主要针对UNIX平台。
由于时区数据库文件不包括在此crate中,非UNIX用户可以在IANA网站上下载数据库的副本,并将时区数据库文件编译到本地目录。
然后可以通过在TZ
字符串中指定绝对路径来读取数据库文件
TimeZone::from_posix_tz(format!("{local_database_dir}/usr/share/zoneinfo/Pacific/Auckland"))?;
请注意,此crate不支持在非UNIX平台上确定本地时区。
或者,可以使用类似tzdb的crate,它静态地为此crate提供现有的时区定义,并支持为所有Tier 1平台查找本地时区。
日期时间格式化(相当于libc的strftime
函数)
此crate不提供自定义日期时间格式化支持,但可以使用custom-format
crate将自定义格式指定符提供给标准库格式宏。
编译器支持
在没有默认功能的情况下构建时,需要rustc 1.45+
,否则需要rustc 1.55+
。
许可证
此项目可以在以下任一许可证下使用
任选其一。
除非您明确说明,否则,根据Apache-2.0许可证定义,您有意提交的任何贡献,都应如上所述双重许可,无需任何额外的条款或条件。