有很多帖子涵盖了这个主题,但是我将它们调整为我的代码我找不到合适的答案。
try (BufferedReader br = new BufferedReader(new FileReader(path));)
{
String line = "";
Person tempPerson = null;
String dateFormat = "dd-MM-yyyy";
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date tempBirthdayDate = null;
while ((line = br.readLine()) != null)
{
String[] splitFormat = line.split("/");
for (String s : splitFormat)
{
String[] datamember = s.split(", ");
//Some more stuff...
tempBirthdayDate = sdf.parse(datamember[3]);
sdf.format(tempBirthdayDate);
sdf.applyPattern(dateFormat);
//Some more stuff...
}
tempPerson = new Person(...,...,...,tempBirthdayDate,...,...);
}
}
Person.java复制构造函数:
public Person(..., ..., ..., Date birthdayDate, ..., ...)
{
this.xxx = ...;
this.xxx = ...;
this.xxx = ...;
this.birthdayDate = birthdayDate;
this.xxx = adresse;
this.xxx = ...;
}
那些“......”只是占位符来缩短代码。在源文件(.txt)中,日期与我在那里定义的格式相同。但是,只要我在birthdayDate上调用toString() - Method,我就会得到以下结果: 1993年5月26日: 5月26日星期三00:00:00 CEST 1993.感谢您的帮助!
答案 0 :(得分:0)
Date对象的toString方法不受初始化的SimpleDateFormat的影响。
您需要创建一个自定义类来扩展Date并覆盖toString方法
public class CustomDate extends Date {
......
@Override
public String toString(){
return new SimpleDateFormat("dd-MM-yyyy").format(this);
}
}
In Person构造函数
public Person(..., ..., ..., CustomDate birthdayDate, ..., ...)
{
this.xxx = ...;
this.xxx = ...;
this.xxx = ...;
this.birthdayDate = birthdayDate;
this.xxx = adresse;
this.xxx = ...;
}
你现在可以在birthdayDate上调用toString并获得你想要的格式