我正在使用Joda Time。我想比较2个日期/时间A和B,以确定B是否超过了A.
问题 - 当我登录时,它不是UTC。当我在UTC中记录它时。因此,比较并不真实。
A - A UTC time loaded from a file
B -The "System Time" in UTC
代码:
A - DateTime csvTime = new DateTime( inArray[5] ) ; //inArray[x] is loaded from a file and has this format: 2017-02-10T01:09:00Z
B - new DateTime(DateTimeZone.UTC)
问题 - 如何加载inArray [5]以使其真正采用UTC并与B进行准确比较?
先谢谢,是的,我已经查看了100篇帖子。我还没有找到一篇帖子告诉我上面的A的语法,如何在UTC内部存储外部ISO 8601格式的日期。我玩过TimeZone设置默认强制Joda / JVMP默认TZ,但这使我处于必须指定TimeZone的位置,我不想这样做。
答案 0 :(得分:1)
如果您的输入已经是UTC(尾随“Z”),那么我建议您这样解析:
DateTime dt =
ISODateTimeFormat.dateTimeNoMillis().withOffsetParsed().parseDateTime(
"2017-02-10T01:09:00Z"
);
System.out.println(dt); // 2017-02-10T01:09:00.000Z
否则,您可以通过withZone(DateTimeZone.UTC)将A-DateTime转换为UTC。