gpt4 book ai didi

java - SimpleDateFormat 格式从毫秒中删除前导零

转载 作者:行者123 更新时间:2023-11-30 07:07:43 24 4
gpt4 key购买 nike

我在使用 SimpleDateFormat 格式化毫秒时遇到困难。我正在尝试使用模式“SS”获得准确的毫秒输出,但是当毫秒以零开始时,SimpleDateFormat.format() 将删除前导零并返回剩余数字。

例如,我期望得到“08”的输出,但我从时间 02:20:48.087 得到格式模式为“SS”或“S”的“87”。

在 javadoc 中声明两个字母模式输出被解释为数字,但同样的问题也会发生在一个 S 字母上。

SimpleDateFormat test = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SS");
Calendar testCalendar = Calendar.getInstance();
long unixtime = 435457248087L; // 1983-10-20 02:20:48.087
testCalendar.setTimeInMillis(unixtime);

String output = test.format(testCalendar.getTime());
System.out.println(output); // outputs 1983-10-20 02:20:48.87, not xxx.08

这当然可以通过使用“SSS”模式轻松修复,但我只是好奇这是一个错误还是这个错误有什么问题。

最佳答案

SS 只是“毫秒数,必要时用 0 填充以给出 2 位数的结果”。所以看起来它的行为符合文档的预期。

我个人认为,如果指定(并实现)将 08 作为小数点后 2 位秒的小数部分,我认为会更明智——不幸的是,这不是它的工作原理。

认为没有任何方法可以使用 SimpleDateFormat 指定“秒的分数到小数点后 2 位”。

关于java - SimpleDateFormat 格式从毫秒中删除前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24611508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com