use*_*468 3 java date java.util.date
String testDateString = "02/04/2014";
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
Date d1 = df.parse(testDateString);
String date = df.format(d1);
Run Code Online (Sandbox Code Playgroud)
输出字符串:
2014年2月4日
d1现在我需要以相同方式格式化日期( “02/04/2014”)。
如果您想要一个始终打印所需格式的日期对象,您必须创建一个自己的类子类Date并覆盖toString那里。
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyDate extends Date {
private final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
public MyDate() { }
public MyDate(Date source) {
super(source.getTime());
}
// ...
@Override
public String toString() {
return dateFormat.format(this);
}
}
Run Code Online (Sandbox Code Playgroud)
现在您可以像以前一样创建此类Date,而无需SimpleDateFormat每次都创建。
public static void main(String[] args) {
MyDate date = new MyDate();
System.out.println(date);
}
Run Code Online (Sandbox Code Playgroud)
输出是23/08/2014.
这是您在问题中发布的更新代码:
String testDateString = "02/04/2014";
DateFormat df = new SimpleDateFormat("dd/MM/yyyy");
MyDate d1 = new MyDate(df.parse(testDateString));
System.out.println(d1);
Run Code Online (Sandbox Code Playgroud)
请注意,您不必再调用df.format(d1),d1.toString()将返回日期作为格式化字符串。