2013-02-28 23 views
0

本週以下問題非常頑強。 我嘗試使用以下方法獲取用戶選擇的日期。DatePicker,Java GWT中的Date對象返回錯誤的值

datePicker = new DatePicker(); 
datePicker.setValue(new Date(), true); 
Date date = datePicker.getValue(); 
int year = date.getYear()+1900; 
int month = date.getMonth(); 
int day = date.getDay(); 

我得到的只是今天的奇怪值02/28/2013我得到01/04/113。

我發現了幾件事情,比如上面提到的方法都折舊了,而且我可以只添加 1900年。 增加一個數字的年份可以工作,但不適用於月份和日期。

我還沒有找到一個很好的解決方案,但這個問題。 所以我任何人都有一個提示如何解決這個問題我會非常感謝你的幫助!

謝謝你的時間!

+0

什麼代碼讓你「01/04/113」? – 2013-02-28 10:17:45

+0

爲此您添加1900 – 2013-02-28 10:27:17

+0

歡迎使用stackoverflow。我可否知道你在一年中增加1900的目的是什麼?最後一行爲 – 2013-02-28 11:11:54

回答

0

Java日曆包含Julian和Gregorian日期組件。您無需添加1900。刪除添加1900和你的代碼應該可以正常工作。 Java本身加入1900處理,並進一步日期選擇器去的折騰,如果它的日期小於1900

GWT datepicker goes nuts under 1900

如果您認爲此答案有幫助,別忘了給予好評,甚至更好,如果它解決你的問題接受它。

+0

+1。 – Adarsha 2013-02-28 13:33:34

0

這是因爲您添加的1900不是正確的方式來添加該數字Java內置功能來添加該數字。所以從我這邊你需要刪除1900,你將能夠有正確的答案,你想要的。

如果您使用的是日期選取器,它會自動添加當前日期的日期。所以如果你在現在的手段2013年增加1900年,這將是問題。和DatePicker有設置日期formate不是

  Date date = new Date(); 
      datePicker1.setDate(date); 
      date = datePicker1.getDate(); 
      int year = date.getYear(); 
      int day = date.getDay(); 
      int month = date.getMonth(); 
      System.out.println(year+""+day+""+month);