1. ホーム
  2. java

[解決済み] この日付形式は何ですか?2011-08-12T20:17:46.384Z

2022-03-18 05:16:28

質問

次のような日付があります。 2011-08-12T20:17:46.384Z . これはどのような形式ですか? 私は、Java 1.4でこれを解析しようとしています。 DateFormat.getDateInstance().parse(dateStr) と表示されます。

java.text.ParseException: Unparseable date: "2011-08-12T20:17:46.384Z"

を使うべきだと思います。 SimpleDateFormat をパースするために、まずフォーマット文字列を知る必要があります。 今のところ、私が持っているのは yyyy-MM-dd がわからないからです。 T この文字列の意味は、タイムゾーンに関連する何かですか? この日付の文字列は lcmis:downloadedOn タグが表示されます。 Files CMIS ダウンロード履歴メディアタイプ .

解決方法

Tは日付と時刻を区切るためのリテラルで、Zはゼロ時間オフセット(UTC)を意味します。もしあなたの文字列が 常に は "Z" を使用することができます。

SimpleDateFormat format = new SimpleDateFormat(
    "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
format.setTimeZone(TimeZone.getTimeZone("UTC"));

または Jodaタイム を使用することができます。 ISODateTimeFormat.dateTime() .