0

我使用以下代码检索当前日期和时间,然后使用以下方法将其添加到表中。

 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;
    }
4

3 回答 3

4

Date对象没有格式。(也不java.sql.Datejava.util.Date。)数据库只会以它选择的任何本机表示形式(几乎肯定不是文本)将其存储在表中,当您检索数据时,可以根据需要对其进行格式化。

要更改 使用的格式System.out.println,只需更改您传递给SimpleDateFormat构造函数的模式 - 有关详细信息,请参阅文档。请注意,您还应该考虑Locale您对哪个时区感兴趣 - 例如,不同语言环境之间的月份名称不会相同,并且不同语言环境也有不同的预期格式。(即使在同一种语言中,也有不同的约定。)

你会发现“29th”的“th”很难处理SimpleDateFormat——我不相信它支持序数。这个问题可能对你有所帮助。(这将是丑陋的代码,请注意 - 如果可能的话,我建议更改格式以删除序数。)

于 2013-07-30T06:04:14.297 回答
2

要将日期更改为序数,您需要使用以下后缀。也看看这个链接

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}"/>
于 2013-07-31T03:04:29.183 回答
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);
于 2013-07-30T06:04:29.830 回答