私はJAXBとjoda time 2.2を使用しています。Mysql から XML にデータをバックアップし、復元します。私のテーブルには、「16-Mar-05」の形式の日付属性があります。これをXMLに正常に保存しました。しかし、XML から読み取って Mysql テーブルに戻したい場合、正しい形式を取得できません。
これは私の XMLAdapter クラスです。ここでは非整列化メソッドで入力文字列は「16-Mar-05」ですが、パターンを「dd- MMM-yy」。試したすべてのオプションを投稿しましたが、16-Mar-05 形式のように「dd-MMM-yy」で localDate を取得するにはどうすればよいですか?
ありがとう!!
public class DateAdapter extends XmlAdapter<String, LocalDate> {
// the desired format
private String pattern = "dd-MMM-yy";
@Override
public String marshal(LocalDate date) throws Exception {
//return new SimpleDateFormat(pattern).format(date);
return date.toString("dd-MMM-yy");
}
@Override
public LocalDate unmarshal(String date) throws Exception {
if (date == null) {
return null;
} else {
//first way
final DateTimeFormatter dtf = DateTimeFormat.forPattern("dd-MMM-yy");
final LocalDate localDate2 = dtf.parseLocalDate(date);
//second way
LocalDate localDate3 = LocalDate.parse(date,DateTimeFormat.forPattern("dd-MMM-yy"));
//third way
DateTimeFormatter FORMATTER = DateTimeFormat.forPattern("dd-MMM-yy");
DateTime dateTime = FORMATTER.parseDateTime(date);
LocalDate localDate4 = dateTime.toLocalDate();
return localDate4;
}
}