java - 比较两个 Joda-Time DateTime 对象

标签 java jodatime

我正在处理的问题与这里所问的非常相似 - compare Joda-Time time zones但这似乎对我不起作用。

这是我正在测试的一段代码 Joda-Time DateTime与 -

 DateTime estDT = new DateTime(DateTimeZone.forID("America/Puerto_Rico")).withMillisOfSecond(0); 
 DateTime londonDT = new DateTime(DateTimeZone.forID("Europe/London")).withMillisOfSecond(0);

    System.out.println("Comparison " + londonDT.isBefore(estDT)); 
    System.out.println("Comparison " + londonDT.isAfter(estDT)); 

有趣的是,我从上面的两个 sysout 语句中都得到了“错误”。谁能解释一下进行这种比较的正确方法是什么?

最佳答案

isAfterisBefore方法按毫秒比较日期(忽略时区)。

在您的示例中,日期的毫秒数相等。

System.out.println(londonDT.getMillis() == estDT.getMillis());  

将打印 true

表达式

londonDT.isBefore(estDT) 
londonDT.isAfter(estDT)

等于

londonDT.getMillis() < estDT.getMillis()  
londonDT.getMillis() > estDT.getMillis()

关于java - 比较两个 Joda-Time DateTime 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17172782/

相关文章:

java - DataNucleus 中的@Convert

Javadoc 链接到其他类中的方法

java - java.util.time.LocalDateTime 反序列化为 joda LocalDateTime

java - joda periodFormatter 打印 null

java - 使用 Joda Time 时无法生成启用了混淆器的签名 APK

java - 如何将系统属性传递给 docker 容器?

java - 单击时使 RecyclerView 图像全屏显示

java - 通俗地说,Spring中的getBean是干什么的?

java - 如何使用 joda time 检查时间是否在间隔之前

java - 如何在java中将天数转换并附加到Period类的小时数中?