java - Joda Time : new DateTime(String) vs DateTime. 解析(字符串)

标签 java xml date datetime jodatime

使用 joda-time-2.0 版本库,我想知道,从 ISO 日期(假设 XML xs:dateTime 格式)构造哪个函数更好:new DateTime(String)DateTime.parse(String) .

因为两者都从相同的值返回不同的结果。示例:

new DateTime("2012-08-16T07:22:05Z")
DateTime.parse("2012-08-16T07:22:05Z")

由于 ISOChronology 而导致不同。第一个是 ISOChronology[Europe/Paris],第二个是 ISOChronology[UTC],虽然毫秒是一样的。

此外,here建议使用 ISODateTimeFormat.dateTimeNoMillis() , 给出与使用第一个版本 (new) 相同的结果。

最佳答案

这两个方法使用了两种不同的转换方式:构造函数使用InstantConverter的实例,如果是字符串,则为 StringConverter并且尚不支持从传递的字符串中读取时区,而 parse 方法使用 DateTimeFormatter它知道如何解析时区。

虽然理论上这两种格式都接受 ISO 日期时间格式,但我认为构造函数有问题,因为它总是使用系统时区而不是字符串中指定的时区。这与此构造函数接受的其他可能值不一致,这些值确实考虑了具有时区偏移量的年表。例如,此构造函数将返回具有 UTC 时区的 DateTime 对象:

new DateTime(DateTime.parse("2012-08-16T07:22:05Z"))

关于java - Joda Time : new DateTime(String) vs DateTime. 解析(字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12197346/

相关文章:

java - 使用 ESC/POS 设置字符大小 (Java)

java - 为什么这段代码是错误的?

java - 连接时 ActiveMQ 超时

MySQL显示整个月的所有日期

java - 为什么大多数 java.util.Date 方法都被弃用了?

java - Spring和Rabbit mq消息顺序

java - 在 Java 中将 XML 转换为 JSON 的最快方法

php - 显示带有从 mysql 检索到的标记的谷歌地图

xml - 如何设置属性以及如何在 nant 中获取它

PHP 按日期排序