2013-07-30 41 views
0

我使用下面的代碼來檢索當前日期和時間,然後使用以下方法將其添加到表中。如何將當前日期時間的格式設置爲不同的格式?

Change 2013-07-29 23:20:34.0 to 29th July 2013, 11:20 PM 

的DateTime

public Date getCurrentDateTime() { 
     SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     Date date = new Date(); 
     System.out.println("current:" + dateFormat.format(date)); 
     return date; 
    } 

休眠

@Temporal(javax.persistence.TemporalType.TIMESTAMP) 
    public Date getCurrentDateTime() { 
     return date; 
    } 
+0

因爲你可以用dd-MMMM-YYYY它是如何以往任何時候都將所需的日期格式jsp頁面日期不顯示th – pundit

+0

,所以你想從數據庫中得到它時格式化它? –

回答

2

要更改一天序數,你需要使用以下suffix數。看看這個link以及

DD +  TH = DDTH result >>>> 4TH 

OR to spell the number add SP to the format 

DD + SPTH = DDSPTH result >>> FOURTH 

而且使用FMT庫格式上

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> 

<fmt:formatDate type="both" dateStyle="long" timeStyle="short" 
     value="${date}"/> 
+0

這是我正在尋找的答案,並且感謝[此鏈接](http://www.oradev.com/oracle_date_format.jsp) – Ramsharan

4

Date對象不具有的格式。 (java.sql.Datejava.util.Date都沒有。)數據庫只會將它存儲在表格中,而不管它選擇的是什麼原生表示(幾乎肯定不是文本),當你檢索數據時,你可以用來設置你想要的格式。

要更改System.out.println使用的格式,只需更改傳遞給SimpleDateFormat構造函數的模式 - 有關詳細信息,請參閱文檔。請注意,您應該考慮您也對哪個時區感興趣 - 例如,不同地區的月份名稱不同,而且不同地區的預期格式也不同。 (即使在相同的語言,有不同的約定)

你會發現「第29」的「th」很難處理與SimpleDateFormat - 我不相信它支持序號。 This question雖然可以幫助你。 (這將是難看的代碼,請注意 - 如果可能,我會建議更改格式以刪除序號。)

+0

現在的問題是,如果從數據庫中檢索到它,那麼如何格式化它。 –

+1

@TimNorman:使用'SimpleDateFormat',就像你正在做的一樣 - 只要將模式調整到任何你想要的。我已經添加了一個文檔鏈接到我的答案。 –

+0

你可以添加,使它的序數看看我的答案。 – J888

0

與此類似的東西?

爲休眠

SimpleDateFormat format = new SimpleDateFormat("dd-MM-yyyy"); 
String dateBufferString = format.format(date); 
Date dateBuffer; 
try { 

dateBuffer = format.parse(dateBufferString); 
System.out.println("Database Date Format :" + date); 
System.out.println("(dd-MM-yyyy) date: " + format.format(date)); 
System.out.println("dateBufferSTring " + dateBufferString); 
System.out.println("dateBuffer: " + dateBuffer); 
+0

我提供了一個預期的輸出示例,我曾嘗試過這一點,但都沒有幫助。 –

+0

@TimNorman檢查更新的答案 – Ghostman

相關問題