2012-01-26 42 views
-4

我將格式保存爲「20:01:00」的時間加倍。java中的時差jsf

我可以計算上述時間的不同2。

,使得變量1 =十八點20分00秒 變量2 = 19時22分00秒

所以,如果變量1大於變量2,它會執行一些動作。

我該如何在java中做到這一點?

+0

請問您可以發佈一些代碼示例嗎?恐怕這個問題不是很清楚。 – Natix

+0

還沒有編碼..這是要求我必須把代碼... –

+0

@benylim爲什麼你要把時間存儲爲雙倍? –

回答

2

改爲使用Date類。它有像after()這樣的方法,比你的比較實現要好得多。將時間存儲爲雙倍是明顯錯誤的(因爲不同的時區等)。

2

如果您將時間作爲字符串格式接收,您可以使用SimpleDateFormat創建如上所述的Date對象,然後使用像compareTo(Date anotherDate)這樣的方法,或者甚至僅僅減去一次。例如:

DateFormat df = new SimpleDateFormat("hh:mm:ss"); 
Date date1 = df.parse(stringDate1); 
Date date2 = df.parse(stringDate2); 
if (date1.compareTo(date2) < 0) { 
    # date1 is before date2 
} else if (date1.compareTo(date2) > 0) { 
    # date1 is after date2 
} else { 
    # they are the same 
} 
1

Date as a double?這是新的東西,我想我看到了一切:(

不要那樣做。類java.util.Datelong時間戳與你不應該使用過時的方法而已。此時間戳的值是一個long原始代表從紀元毫秒(1970年1月1日00:00:00 GMT)這是一個精確到毫秒的整數,所以請不要將它存儲爲double,您將使編譯器哭泣。爲了簡單起見,您可以查看Apache Commons DateUtils class,以便在處理日期和日曆時使用方便且有用的方法。