2011-05-11 14 views
0

所以我有這樣的一段代碼,將返回當前EST將目前的EST與2PM EST比較?怎麼樣?

Date easternTime = new Date(); 
DateFormat format = new SimpleDateFormat("h:mm a"); 
format.setTimeZone(TimeZone.getTimeZone("EST")); 
return format.format(easternTime); 

讓我們說這回x = 12:15PM

我想比較x至3:00 PM EST,看看若x前或後3: 00PM EST,和/或x在美國東部標準時間下午3點至6點之間。有沒有辦法做到這一點。

我們不必使用java.util.date。我接受calendar以及

回答

3

我會絕對而不是Joda Time。如果確實是想要使用內置API來做到這一點,那麼您需要使用Calendar來查找特定時區的本地時間 - 但Joda會讓它更簡單。

你會使用一個DateTime這是在一個特定的時間段,並可能採取LocalTime從與比較一些LocalTime是你已經硬編碼(或從配置文件等閱讀)。

+0

我知道'Calendar'實例創建起來特別昂貴。你認爲'Joda Time'在性能和資源方面更好嗎? – 2011-05-27 19:44:41

+0

@Harry:可以 - 但是當你說它「特別昂貴」時,你的意思是你已經對應用程序進行了配置/基準測試,並且在擔心它之前檢查它是否確實是性能問題? (可以肯定的說,Joda時間可能會更快,我會用它作爲一個更好的API,儘管...) – 2011-05-27 19:46:15

+0

我正在閱讀'有效的Java by Bloch',並且在'項目5'中,Bloch提到關於'Calendar'特別昂貴,因此,布洛赫建議將變量從'local'更改爲'static final'字段以避免創建對象。所以我只是想知道Joda時間和Calendar相比如何。這一切 – 2011-05-27 19:57:25

1

您應該使用日期對象而不是使用字符串。比較使用date.after和date.before方法。