我想以某种格式显示当前时间。
我试图避开time crate,因为它在the GitHub repo上被标记为已弃用。
我想使用time::now().strftime("%Y-%m-%d][%H:%M:%S").unwrap()
使用std::time
格式strftime
,但似乎没有text = '{"section": "\main" }'
。
答案 0 :(得分:12)
您可以使用包chrono
来获得相同的结果:
extern crate chrono;
use chrono::Local;
fn main() {
let date = Local::now();
println!("{}", date.format("%Y-%m-%d][%H:%M:%S"));
}
修改强>
时间包不被弃用:它没有被维护。
此外,无法仅使用标准库格式化时间。
答案 1 :(得分:4)
目前有两种Vector3 myTransform = new Vector3(33,12,0);
方法:Instant::now
和SystemTime::now
。
now
说:
单调增加时钟的测量。不透明且仅对
Instant
有用。
Duration
说:
系统时钟的测量,可用于与外部实体(如文件系统或其他进程)进行通信。
这些都不适合向人类展示。时间硬,格式时间是额外的复杂性。它不是标准库的一部分真的是一件好事,否则就会有一个无法改进的固定API。
正如其他地方所述,我建议使用chrono,继承人明显到SystemTime
包。
答案 2 :(得分:1)
由于 time 板条箱似乎复活了,您不再需要避免使用它。话虽如此,除了 std::time
板条箱的类似 time
的格式化功能之外,您还可以继续使用 strftime
(这实际上是 time
板条箱所做的) .
use time::OffsetDateTime;
use std::time::SystemTime;
const DATE_FORMAT_STR: &'static str = "%Y-%m-%d][%H:%M:%S";
fn main() {
let dt: OffsetDateTime = SystemTime::now().into();
let dt2 = OffsetDateTime::now_utc(); // Also uses std::time (v0.2.26)
println!("{}", dt.format(DATE_FORMAT_STR));
println!("{}", dt2.format(DATE_FORMAT_STR));
}
注意(引用文档页面):
<块引用>Time 的格式化行为基于 C 中的 strftime,尽管它明确不兼容。说明符可能会丢失、添加或具有与 C 中不同的行为。
因此请务必检查 this(即表格)以确保您使用了正确的说明符。