将 Java SQL 日期从 yyyy-MM-dd 转换为 dd MMMM yyyy 格式的最佳方法

2022-01-15 00:00:00 format date java

有没有一种直接的方法可以将 Java SQL 日期从 yyyy-MM-dd 格式转换为 dd MMMM yyyy 格式?

Is there a straightforward way of converting a Java SQL Date from format yyyy-MM-dd to dd MMMM yyyy format?

我可以将日期转换为字符串,然后对其进行操作,但我宁愿将其保留为 Java SQL 日期.在我需要这样做的时候,数据已经从 MySQL 数据库中读取,所以我不能在那里进行更改.

I could convert the date to a string and then manipulate it but I'd rather leave it as a Java SQL Date. at the time I need to do this, the data has already been read from the MySQL database so I cant do the change there.

推荐答案

java.sql.Datejava.util.Date等对象(其中java.sql.Date 是一个子类)没有自己的格式.您使用 java.text.DateFormat 对象以特定格式显示这些对象,并且是 DateFormat(不是 Date 本身)确定格式.

Object such as java.sql.Date and java.util.Date (of which java.sql.Date is a subclass) don't have a format of themselves. You use a java.text.DateFormat object to display these objects in a specific format, and it's the DateFormat (not the Date itself) that determines the format.

例如:

Date date = ...;  // wherever you get this
DateFormat df = new SimpleDateFormat("dd MMMM yyyy");
String text = df.format(date);
System.out.println(text);

注意:当您打印 Date 对象而不使用 DateFormat 对象时,如下所示:

Note: When you print a Date object without using a DateFormat object, like this:

Date date = ...;
System.out.println(date);

然后它将使用一些默认格式进行格式化.但是,该默认格式不是您可以更改的 Date 对象的属性.

then it will be formatted using some default format. That default format is however not a property of the Date object that you can change.

相关文章