2013-02-06 48 views
0

我班有2個屬性構成了日期:我如何判斷一個Java日期和時區是在當前時間之前?

java.util.Date date; 
String timeZone; 

我如何可以看到,如果這個日期是服務器上的當前時間之前?

基本上我想寫這樣的事情,但採取的timeZone考慮:內部

return date.before(new Date()); 
+0

'Date'內部存儲爲UTC,因此您的'timeZone'變量不是必需的且令人困惑。 –

+0

的'timeZone'是創建日期的用戶的時區。 – Brian

+0

你是如何構建'Date'的? –

回答

0
Calendar startCalendar = Calendar.getInstance(); 
    int startTimeZoneOffset = TimeZone.getTimeZone(timeZone).getOffset(startDate.getTime())/1000/60; 
    startCalendar.setTime(startDate); 
    startCalendar.add(Calendar.MINUTE, startTimeZoneOffset); 

    Calendar nowCalendar = Calendar.getInstance(); 
    int nowTimeZoneOffset = nowCalendar.getTimeZone().getOffset(new Date().getTime())/1000/60; 
    nowCalendar.setTime(new Date()); 
    nowCalendar.add(Calendar.MINUTE, nowTimeZoneOffset); 

    return startCalendar.before(nowCalendar); 
2

Date店爲UTC,所以你timeZone變量是沒有必要的。您可以簡單地使用Date.before(Date)

相關問題