2013-08-30 47 views

回答

19

ReadableInstant中有一個boolean isAfter(ReadableInstant instant)方法,因此DateTime實現了ReadableInstant它也應該接受DateTime。

+0

我看到拍攝超負荷但忽略它,因爲我不知道當我期待着一個'ReadableInstant'時,我可以傳遞一個'DateTime'。謝謝! –

+2

@Teifi如果這回答了你的問題,你應該考慮接受。 –

+0

以上答案是使用最佳方法之一 –

1
public static void main(String[] args) { 
    System.err.println(new DateTime().isAfter(new DateTime().plusDays(1))); 
} 

作品對我來說

0

還有來自BaseDateTime,讓你代表日期的long值繼承getMillis()方法,你可以比較兩個long值,以確定哪些是之前,並且由多少。

+0

如上所述,如果您想知道兩個DateTime對象之間在代碼中以後的其他輸出之間的確切區別。 –

2

方法isAfter說明

public boolean isAfter(ReadableInstant instant) 

    Is this instant after the instant passed in comparing solely by millisecond. 

    Specified by: 
     isAfter in interface ReadableInstant 

    Parameters: 
     instant - an instant to check against, null means now 
    Returns: 
     true if the instant is after the instant passed in 

它採用ReadableInstant作爲參數,所以DateTime也可以作爲清楚DateTime Hierarchy

Class DateTime 

java.lang.Object 
    extended by org.joda.time.base.AbstractInstant 
     extended by org.joda.time.base.AbstractDateTime 
      extended by org.joda.time.base.BaseDateTime 
       extended by org.joda.time.DateTime 

All Implemented Interfaces: 
    Serializable, Comparable<ReadableInstant>, ReadableDateTime, ReadableInstant 

以上信息傳遞是從joda api docs

+0

當[文檔](http://joda-time.sourceforge.net/apidocs/org/joda/time/base/AbstractInstant.html#isAfter(org.joda.time.ReadableInstant))說「僅比較毫秒,「他們的意思是」毫秒「?他們只是說時區被忽略了,對吧? –

相關問題