在Rust中使用chrono处理日期时间时如何始终显示毫秒?
你使用的格式串中%.f的默认行为是自动省略亚秒部分的尾部零,当毫秒值为0时会直接省略整个小数段,这是chrono库的内置设计,没有额外开关可以调整这个默认行为。
如果需要强制固定显示3位毫秒,无论数值是否为0,只需把格式符替换为%.3f即可,数字3代表固定保留3位亚秒(对应毫秒精度),尾部会自动补零。修改后的代码如下:
use chrono::NaiveDate; fn main() { let date = NaiveDate::from_ymd(2015, 7, 1).and_hms_milli(0, 0, 0, 0); println!("{}", date.format("%Y-%m-%dT%H:%M:%S%.3f")); }
运行后输出结果为2015-07-01T00:00:00.000,符合预期。如果需要更高精度,比如微秒可以用%.6f,纳秒可以用%.9f,按需调整即可。
内容的提问来源于stack exchange,提问作者frankenapps
相关产品推荐
相关产品推荐

