2012-12-15 71 views
2

我使用2個GWT datepickers和一個JAVA日期對象。我想檢查當前日期(來自now()函數)是否在日期選擇器中選擇的日期之間。 我有2個問題:替代棄用的java date.sethours

  1. 如何確保在第二個日期選取器挑選的日期至少應相同或晚於一個在第一個挑?

  2. 我想在兩個日期選擇器中設置相同的日期並檢查我的當前日期。我試圖通過將我的第二個日期的時間設置爲11:59:59 PM,但它說Date.setHours和setMinutes方法被取消。

任何想法?感謝任何幫助。

p.s.請不要告訴我使用日曆或任何其他日期功能。我的約束是我需要使用java.util.Date。

+0

那麼,無論你使用這個棄用的方法,或者你使用日曆,或者你使用其他日期時間庫,如喬達時間。 –

+1

@Jakub GWT中沒有日曆或Joda。 –

+0

是否嘗試過Calendar.set(Calendar.HOUR_OF_DAY,int小時)而不是date.sethours –

回答

4

比較日期,即可使用

date2.getTime() >= date1.getTime(); 

請注意,你不能直接比較日期 - Java允許,但在JavaScript中也有問題。

要設置相同日期,請從一個日期選擇器獲取日期,並將其設置爲另一個日期。

另請注意,GWT中有一個CalendarUtil類(com.google.gwt.user.datepicker.client.CalendarUtil),它具有有限的功能,但在許多情況下它仍然非常有用。

您可以對Date對象使用不推薦使用的方法 - 沒有人打算很快將其刪除。儘可能使用毫秒來儘量避免使用它們,但例如,使用不推薦使用的方法檢查一週中的哪一天更容易。

6

儘管您的IDE有什麼要說的,但使用舊的java.util.Date方法並不是那麼糟糕。在常規Java代碼中,是的,請使用Calendar類,但出於歷史原因,請考慮不要使用這些「已棄用」方法。

曾幾何時,Java是最酷的孩子 - 很奇怪,對吧?網絡瀏覽器沒有這樣的語言,有人說:「嘿,讓他們給我一種腳本語言,但把它叫做什麼,我不知道,很酷!」因此,我們給了JavaScript - 更多的是一種類似於Lisp的語言,但不用介意。

一些API是借來的,比如Date對象。然後,Java決定它可以處理的日期和時間以及時區更好,不贊成這些功能,如setHours,並轉移到我們今天所知和所愛的Calendar,JodaTime等明亮(令人困惑)的未來。

瀏覽器雖然有JavaScript,並且找到了自己的方式,並繼續使用這些方法。有JavaScript庫可以幫助處理日期,但在瀏覽器運行時,Date對象仍然看起來像舊的java.util.Date

因此,在GWT中,用Java編寫你喜歡的地方,但要記住你是在一個Web瀏覽器中 - 底層語言恰好具有使用這些不推薦使用的方法的本地功能 - 而且它們不會去任何地方。同樣,儘管Object.wait()notify()是合法的,但不能使用它們,也不會調用finalize()--這些只是使用Java組織和維護庫或應用程序時需要記住的事情,並且編譯爲使用JavaScript在網頁瀏覽器中運行。

相關問題