Java 如何将当前日期时间的格式设置为不同的格式?

Java 如何将当前日期时间的格式设置为不同的格式?,java,hibernate,datetime-format,Java,Hibernate,Datetime Format,我使用以下代码检索当前日期和时间,然后使用以下方法将其添加到表中 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();

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

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

Date
对象没有格式。(无论是
java.sql.Date
还是
java.util.Date
)数据库都将以其选择的任何本机表示形式(几乎肯定不是文本)将其存储在表中,当您检索数据时,您可以根据自己的意愿对其进行格式化

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


您会发现“29”中的“th”很难处理
SimpleDataFormat
——我认为它不支持序数。不过我可以帮你。(请注意,这将是难看的代码-如果可能的话,我建议更改格式以删除序号。)

A
Date
对象没有格式。(无论是
java.sql.Date
还是
java.util.Date
)数据库都将以其选择的任何本机表示形式(几乎肯定不是文本)将其存储在表中,当您检索数据时,您可以根据自己的意愿对其进行格式化

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


您会发现“29”中的“th”很难处理
SimpleDataFormat
——我认为它不支持序数。不过我可以帮你。(请注意,这将是一个难看的代码-如果可能的话,我建议更改格式以删除序号。)

类似的东西

冬眠

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);

类似的东西

冬眠

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);

要将日期更改为序号,您需要使用以下命令。也来看看这个

还可以使用fmt库格式化jsp页面上的日期

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

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

要将日期更改为序号,需要使用以下命令。也来看看这个

还可以使用fmt库格式化jsp页面上的日期

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

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


问题是,一旦从数据库中检索到,如何格式化它。@TimNorman:使用
SimpleDataFormat
,只要根据需要调整模式即可。我已经为我的答案添加了一个文档链接。您可以添加th,使其有序。请看一下我的答案。@J888:这是在数据库端格式化它-我个人认为这不是一个好主意。问题是,一旦从数据库检索到它,如何格式化它。@TimNorman:使用
SimpleDataFormat
,当你在做的时候,只要根据你想要的调整模式就可以了。我已经在我的答案中添加了一个文档链接。你可以添加th使其有序。请看一下我的答案。@J888:这是在数据库端格式化的,我认为这不是一个好主意,就我个人而言。我提供了一个预期输出的示例,我以前尝试过这个示例,但都没有帮助。我提供了一个预期输出的示例,我以前尝试过这个示例,但都没有帮助。对于所需的日期格式,您可以使用dd-MMMM-yyyy,但它无论如何都不会显示thso,因此您希望在从数据库中获取THO后对其进行格式化?对于所需的日期格式您可以使用dd-MMMM-yyyy,但无论如何它都不会显示TH,因此您希望在从数据库中获取TH后对其进行格式设置?这是我正在搜索的答案,谢谢这是我正在搜索的答案,谢谢