簡體   English   中英

比較兩個Joda-Time DateTime對象

[英]Comparing two Joda-Time DateTime objects

我正在處理與此處提出的問題非常類似的事情 - 比較Joda-Time時區,但它似乎對我不起作用。

這是我正在測試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語句中得到'false'。 任何人都可以解釋一下這種比較的正確方法是什么?

isAfterisBefore方法按millis比較日期(忽略時區)。

在您的示例中,日期具有相等的毫秒數。

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

將打印為true

表達式

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

等於

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

您正在創建兩個DateTime實例,這些實例可能代表同一時刻,但具有不同的時區。 在另一個之前或之后都沒有。

時區只會影響getHourOfDay()類的日期/時間方法如何及時轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM