2013-02-13 127 views
2

我正在使用Joda-Time API來處理我的Web應用程序中的日期時間。在日期時間比較中,我對使用/指定特定區域有點困惑。何時涉及日期/時間計算?

我有兩個文本框 - 一個用於折扣開始日期,另一個用於折扣結束日期。用戶可以從jQuery日期時間選擇器中選擇一個日期。

這兩個日期需要根據像一些標準進行比較,

  • 折扣開始日期必須在結束日期之前。
  • 兩個日期必須爲而不是必須相同,並且這兩個日期之間必須有定義的時間間隔。
  • 折扣結束日期必須爲而不是應在當前日期之前,但開始日期可以。

和其他一些。

問題不在於如何進行這些比較。這是關於一個區域。在這種情況下,是否有必要指定一個區域。

更具體地,是有必要使用DateTimeZone/DateTimeLocalDateTime足以使這樣的比較,關於喬達API?

+0

那麼你是否想要一個時區參與?如果是這樣,哪個時區?如果折扣同時到達世界各地(大概在*某個時區的午夜 - 哪個?),或者應該在「無論你在哪裏」的一天結束時到期? (另外,當使用* date *時間間隔(沒有時區)時,我通常認爲最好使結束日期包含在內,這意味着它應該對於開始日期和結束日期是相同的,它只在當天有效 – 2013-02-13 18:39:40

+0

「*折扣是否應該同時在世界各地到期*」?是的,應該的,涉及的時區是亞洲/加爾各答,重新調整Joda API。 – Tiny 2013-02-13 18:49:02

+0

好吧,所以我認爲你剛剛提供了自己的答案:是的,你需要指定一個時區,這應該是「亞洲/加爾各答」。 – 2013-02-13 18:49:48

回答

1

根據我個人的經驗,當你在玩日期和時間的東西時,你必須使用時區和這個。這將使您在日期和時間計算中保持準確,特別是在不同區域的日期和時間。您可以將一個日期時間與時區一起轉換爲另一個具有不同時區的等同日期時間。在Joda Time API中,很多方法都需要傳遞TimeZone的時區字符串或對象以獲取正確的日期時間。