2013-07-30 30 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

相关问题