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

Mr *_*gan 3 java format date

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

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

Jes*_*per 10

诸如java.sql.Datejava.util.Date(其中java.sql.Date的子类)之类的对象没有自己的格式.您使用java.text.DateFormat对象以特定格式显示这些对象,而不是DateFormat(而不是Date自身)确定格式.

例如:

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

注意:在Date不使用对象的情况下打印DateFormat对象时,如下所示:

Date date = ...;
System.out.println(date);
Run Code Online (Sandbox Code Playgroud)

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


Miq*_*uel 6

如果是用于演示,您可以立即使用SimpleDateFormat:

package org.experiment;

import java.sql.Date;
import java.text.SimpleDateFormat;

public class Dates {
    private static SimpleDateFormat df = new SimpleDateFormat("MMMM yyyy");

    public static void main(String[] args){

        Date oneDate = new Date(new java.util.Date().getTime());
        System.out.println(df.format(oneDate));
    }

}
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 5

目前尚不清楚"Java SQL Date"的含义.如果你的意思在java.sql.Date,那么它并没有真正一个字符串格式...它只是一个数字.要以特定方式对其进行格式化,请使用类似的方法java.text.SimpleDateFormat.

或者,将其转换为Joda时间 DateTime ; Joda Time是比内置API更好的日期和时间API.例如,SimpleDateFormat不是线程安全的.

(注意,a java.sql.Date比正常情况更精确java.util.Date,但看起来你在这里不需要它.)