有没有一种直接的方法将Java SQL Date从格式yyyy-MM-dd转换为dd MMMM yyyy格式?
我可以将日期转换为字符串,然后操纵它,但我宁愿将其保留为Java SQL日期.在我需要这样做的时候,数据已经从MySQL数据库中读取,所以我不能在那里进行更改.
Jes*_*per 10
诸如java.sql.Date和java.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您可以更改的对象的属性.
如果是用于演示,您可以立即使用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)
目前尚不清楚"Java SQL Date"的含义.如果你的意思在java.sql.Date,那么它并没有真正有一个字符串格式...它只是一个数字.要以特定方式对其进行格式化,请使用类似的方法java.text.SimpleDateFormat.
或者,将其转换为Joda时间 DateTime ; Joda Time是比内置API更好的日期和时间API.例如,SimpleDateFormat不是线程安全的.
(注意,a java.sql.Date比正常情况更精确java.util.Date,但看起来你在这里不需要它.)