如何创建具有特定格式的日期对象

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”)。

Tom*_*Tom 5

如果您想要一个始终打印所需格式的日期对象,您必须创建一个自己的类子类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()将返回日期作为格式化字符串。