我使用以下代码检索当前日期和时间,然后使用以下方法将其添加到表中。
Change 2013-07-29 23:20:34.0 to 29th July 2013, 11:20 PM
日期时间
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 :(得分:4)
Date
对象没有格式。 (既不是java.sql.Date
也不是java.util.Date
。)数据库只会将它存储在表中,无论它选择什么样的本地表示(几乎肯定不是文本),当你检索数据时,它取决于你< / em>按照您的意愿格式化它。
要更改System.out.println
使用的格式,只需更改传递给SimpleDateFormat
构造函数的模式 - 有关详细信息,请参阅文档。请注意,您应该考虑您感兴趣的时区和Locale
- 例如,不同语言环境之间的月份名称不同,并且不同的语言环境也有不同的预期格式。 (即使在同一种语言中,也有不同的惯例。)
你会发现“{29}”的“th”难以处理SimpleDateFormat
- 我不相信它支持序数。 This question可能会帮助你。 (这会是丑陋的代码,请注意 - 如果可能的话,我建议更改格式以删除序数。)
答案 1 :(得分:2)
要将日期更改为序号,您需要使用以下suffix。看看这个link
DD + TH = DDTH result >>>> 4TH
OR to spell the number add SP to the format
DD + SPTH = DDSPTH result >>> FOURTH
还可以使用fmt库格式化jsp页面上的日期
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<fmt:formatDate type="both" dateStyle="long" timeStyle="short"
value="${date}"/>
答案 2 :(得分:0)
与此类似的事情?
for hibernate
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);