gpt4 book ai didi

java - Joda dateTime 解析器不必要地添加毫秒

转载 作者:行者123 更新时间:2023-12-02 05:11:44 25 4
gpt4 key购买 nike

我需要使用 Joda 库将时间以毫秒为单位转换为 2009-01-31T06:34:45Z 。我编写了以下程序,但日期解析器默认添加毫秒。

DateTimeFormatter fmt = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss'Z'");
DateTime dateTime = new DateTime(System.currentTimeMillis());
String str = fmt.print(dateTime);
System.out.println("Date as string - " + str);

dateTime = fmt.parseDateTime(str);
System.out.println("Date as Joda dataTime - " + dateTime);

以下是输出:

Date as string - 2007-03-24T23:03:44Z
Date as Joda dataTime - 2007-03-24T23:03:44.000+05:30

.000+05:30 正在添加到 dateTime 对象中。 print 方法以正确的格式打印日期时间,但 parse 方法添加了不必要的毫秒和时区。请告诉我程序中的错误。

最佳答案

.000+05:30 is getting added to the dateTime object

不,它包含在dateTime.toString()的结果中,仅此而已。 DateTime 值没有任何其自身格式的概念 - 它只是一个日期/时间/日历/区域。如果您想将 DateTime 值转换为特定格式,则需要再次使用格式化程序 - 您清楚地知道如何执行此操作,因为您已经在代码中执行了该操作。

区分“对象中的数据”和“你想要的文本表示”非常重要。 DateTime总是以毫秒精度存储,无论它是从什么解析出来的。

关于java - Joda dateTime 解析器不必要地添加毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27278955/

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