0
このトピックをカバーする記事は多数ありますが、適切な回答が見つからないコードに調整しています。日付形式が失われる
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)の日付は、そこに定義したのと同じ形式です。しかし、私がtoString()メソッドを呼び出すとすぐに、birthdayDateのメソッドは次のような結果を得ます。 05/26/1993: Wed 5月26日00:00:00 CEST 1993.ありがとうございました!
希望の出力は何ですか? – user3437460
あなたが探している文字列は 'sdf.format(tempBirthdayDate)'によって返されます。そして 'sdf.applyPattern(dateFormat)'は冗長です。 – shmosel
あなたは他に何を期待しますか?使用しているメソッドのドキュメントを読んでください – njzk2