2011-11-16 36 views
2

我需要在java中比較兩次,並確保它們距離對方不到10分鐘。這看起來很簡單,並且在Date被棄用之前足夠簡單。有沒有人有任何想法如何在java中編程這個最好的方法是?我看到了公曆日曆,但我沒有看到如何訪問分鐘或日期等字段等用Java比較時間的最佳方法

+3

據我所知(它的許多方法是),java.util.Date沒有被棄用。 – Bruno

+0

您有來自第三方的日期,日曆和多個選項。根據您的使用情況,您可能需要考慮夏令時以及其他您可能需要嘗試避免的時間。你可以看看:http://stackoverflow.com/questions/23914997/java-built-in-date-manipulation-and-comparison查看一些很好的例子,使用1970年的毫秒和其他一些選項。 –

回答

6

Date.getTime()不會被棄用,並且會爲您提供自紀元以來的長整型毫秒數。您可以將此用作此類簡單比較的基礎。

long diffInMins = Math.abs(date1.getTime() - date2.getTime())/60000; 
5

考慮使用JodaTime庫,使這種事情更容易。這將最終成爲官方jdk的一部分。 (十字手指)

+3

*將*,或*傳言*成爲jdk的一部分?它們是有區別的.. –

0

使用Calendar API或Joda Time API。

0
boolean withinTenMinutes(Date date1, Date date2) { 
    boolean withinTenMins = false; 
    long diffInMillis = Math.abs(date1.getTime() - date2.getTime()); 
    if (diffInMillis <= 10*60*1000) { 
    withinTenMins = true; 
    } 
    return withinTenMins; 
} 
1

由於Mechkov說,你可以創建一個日曆和使用前,後和比較方法來測試的區別。

如果你想要的是讓日曆的幾分鐘,你只需要使用這個

Calendar cal = Calendar.getInstance(); 
int minutes = cal.get(Calendar.MINUTE); 

希望它能幫助!

相關問題