次の2つの形式を使用して日付2014-12-03T10:05:59.5646+08:00
を解析しようとしています:
yyyy-MM-dd'T'HH:mm:ss
yyyy-MM-dd'T'HH:mm:ssXXX
yyyy-MM-dd'T'HH:mm:ss
を使用して解析すると正常に動作しますが、yyyy-MM-dd'T'HH:mm:ssXXX
を解析するとParseException
がスローされます。
日付を解析するための正しい形式はどれですか、またこれら2つの形式の違いは何ですか?
注:Joda :(は使用できません。
この形式を使用してくださいyyyy-MM-dd'T'HH:mm:ss.SSSSX
SimpleDateFormat
APIから
//Letter Date or Time Component Presentation Example
S Millisecond Number 978
X Time zone ISO 8601 time zone -08; -0800; -08:00
使用する:
DateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSX");
String date = "2014-12-03T10:05:59.5646+08:00";
System.out.println(format.parse(date));
出力:
Wed Dec 03 03:06:04 CET 2014
それらは有効なフォーマットです:
yyyy-MM-dd'T'HH:mm:ss.SSSZ >>> e.g.: 2001-07-04T12:08:56.235-0700
yyyy-MM-dd'T'HH:mm:ss.SSSXXX >>> e.g.: 2001-07-04T12:08:56.235-07:00
編集:
ところで、「X」は(ISO 8601タイムゾーン)を指します