2 毫秒精度的 Java DateFormat

标签 java time date-format

我在尝试让 DateFormat 库给我一个字符串时遇到问题,该字符串的日期格式为 2 毫秒而不是通常的 3。我意识到这更接近厘秒,但是 afaik Java 不支持。

这里有一些代码可以说明我遇到的问题。我希望它输出两毫秒,但它输出了三毫秒。

public class MilliSeconds {
private static final String DATE_FORMAT_2MS_Digits = "yyyy-MM-dd'T'HH:mm:ss.SS'Z'";
private static DateFormat dateFormat2MsDigits = new SimpleDateFormat(DATE_FORMAT_2MS_Digits);

public static void main( String[] args ){
    long milliseconds = 123456789123l;
    System.out.println(formatDate2MsDigits(new Date(milliseconds)));
}

public static String formatDate2MsDigits(Date date)
{
    dateFormat2MsDigits.setCalendar(Calendar.getInstance(new SimpleTimeZone(0, "GMT")));
    return dateFormat2MsDigits.format(date);
}}

输出:

1973-11-29T21:33:09.123Z

我可以只解析生成的字符串并删除我不需要的数字,但我希望有一种更简洁的方法来实现这一点。有谁知道如何让它工作,或者为什么它不起作用?

最佳答案

对不起。根据javadoc

the number of letters for number components are ignored except it's needed to separate two adjacent fields

...所以我认为没有直接的方法。

我会仅为 SSS 使用单独的格式并调用 substring(0, 2)

关于2 毫秒精度的 Java DateFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9364383/

相关文章:

java - Android - 单元测试以检查按钮单击是否成功

java - 如何在井字游戏中选择正确的按钮

c# - 使用变量格式化日期

c# - 如何解析日期格式01022013、20130102?

java - 如何从 XPages (java) 中的 POST 检索参数

java - 实现固定大小的 HashMap

php - 限制函数或命令 PHP 的执行时间

java - System.currentTimeMillis() 返回的值是否受夏令时和闰秒调整的影响?

time - 如何在一天中的特定时间运行 cypress 测试?

mysql 查询 - 输出格式日期?