2011-05-11 13 views
0

屬性日曆我已經使用屬性日曆與JPA的一個問題:問題的日期格式,使用帶有JPA

@Column(name = "Date") 
@Temporal(TemporalType.DATE) 
private Calendar date; 

默認情況下它被設置好的爲MM/DD/YYYY,我需要它在DD/mm/yyyy, 任何人都可以幫助我嗎?

我見過的是Quiete酒店容易日期,而不是日曆,但我不能用它......

THX 丹尼爾

+0

我想你會需要一個自定義的UserType – vinothkr 2011-05-11 08:50:30

回答

1

我認爲,格式並不重要。 CalendarDate都沒有任何格式。它的格式爲默認格式的toString()方法。

你願意細說,

  • 什麼是預期的行爲?
  • 你在得到什麼?

無論[根據下面的評論編輯],來源於它作爲一個String瀏覽器。因此,在將String轉換爲DateCalendar時遇到問題。解決這個問題,之後所有的都會很好。

快樂編碼。乾杯。

+0

基本上,當我們通過一個JSP放置一個日期時,它被插入到日期格式錯誤的數據庫中,例如,如果我們把1/2/2010結果是1月2日,例如,如果我使用13/09/2010它成爲2011年1月9日...在數據庫中它看起來像這樣:2012-01-09 – Daniele 2011-05-11 09:52:20

+0

無論來自瀏覽器一個字符串。所以,你在將​​該字符串轉換爲日期時遇到了問題。修復。之後一切都會好起來的。快樂的編碼。 ;) – 2011-05-11 10:55:38

0

我相信這不是JPA問題,而是SQL配置。
從你所描述的,你的SQL服務器被配置爲默認格式。您應該將其更改爲您需要的格式。

就以SQL日期格式看看 - http://www.sql-server-helper.com/tips/date-formats.aspx

+0

我不認爲這是一個MySql問題,即使因爲在DB本身它存儲在第三種格式(yyyy-mm-dd) – Daniele 2011-05-11 09:46:08

+0

第二個選項 - JVM時區設置 – Bivas 2011-05-11 09:49:51

0

如果是這樣的話,爲什麼不你可以嘗試SimpleDateFormatter,在那裏你可以解析日期和使用dateFormatter就可以得到所需的日期格式。 For more clarification please try the link.

+0

問題是,我不能改變模型,這樣我必須繼續使用日曆而不是日期 – Daniele 2011-05-11 10:02:29

0

請嘗試以下,讓我們知道:

 String formattedDate = ""; 
     String requiredFormat = "MM/dd/yyyy"; 
     DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy"); 
     Date dt = formatter.parse("13/09/2011"); 
     DateFormat reqFormatter = new SimpleDateFormat(requiredFormat, Locale.ENGLISH); 
     formattedDate = reqFormatter.format(dt); 
     System.out.println("Output Date: " + formattedDate); 

//格式化日期會給你什麼期待在那裏的DB。