11

JSONの形式の DateString を変換YYYY-mm-DD HH:MM:SSし、コードを使用して POJO に永続化しました

DateTimeFormatter format = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss");
this.startDate = format.parseDateTime(startDate);

POJO を JSON に戻すと、日付は のように記述され2013-07-12T18:31:01.000Zます。時間文字列を解析して JodaDateTime オブジェクトに戻すに
はどうすればよいですか。2013-07-12T18:31:01.000Zフォーマッタとは何か。
使っYYYY-mm-DD HH:MM:SSたけどダメだった

4

3 に答える 3

34

2013-07-12T18:31:01.000Z標準の ISO 日時形式です。
標準の Joda 日時フォーマッタISODateTimeFormat::dateTime()を使用できます
。例:

  String startDate = "2013-07-12T18:31:01.000Z";
  DateTime dt = ISODateTimeFormat.dateTime().parseDateTime(startDate);  

この場合、日付はタイムゾーンの日付に変換されます。
タイムゾーンを無視する場合はUTC、フォーマッターでゾーンを使用します。

  String startDate = "2013-07-12T18:31:01.000Z";
  DateTime dt = ISODateTimeFormat.dateTime().withZone(DateTimeZone.UTC).parseDateTime(startDate);
于 2013-07-19T08:27:00.087 に答える
1

API ドキュメントは完全に明確ではありません: 読む必要があります

OneLetterISO8601TimeZone は「X」を意味し、Sign TwoDigitHours または Z を生成します。

したがって、-05のようなもの

TwoLetterISO8601TimeZone は「XX」を意味し、Sign TwoDigitHours 分または Z を生成します。

したがって、-0500 のようなもの

ThreeLetterISO8601TimeZone は「XXX」を意味し、Sign TwoDigitHours : 分を生成します

したがって、-05:00 のようなもの

于 2014-07-11T07:06:55.870 に答える