Если вам нужен объект даты, который всегда будет печатать желаемый формат, вы должны создать собственный подкласс класса 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);
}
}
Теперь вы можете создать этот класс, как раньше с Date
, и вам не нужно каждый раз создавать SimpleDateFormat
.
public static void main(String[] args) {
MyDate date = new MyDate();
System.out.println(date);
}
Результат - 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);
Обратите внимание, что вам больше не нужно вызывать df.format(d1)
, d1.toString()
вернет дату в виде сформированной строки.
person
Tom
schedule
23.08.2014