で解析できませんでした私は、コードの一部を次のようしている。のJava 8日付/時間:瞬間、インデックス19
String dateInString = "2016-09-18T12:17:21:000Z";
Instant instant = Instant.parse(dateInString);
ZonedDateTime zonedDateTime = instant.atZone(ZoneId.of("Europe/Kiev"));
System.out.println(zonedDateTime);
をそれは例外次のように私を与える:
スレッドの例外「メイン」をjava.utize.format.DateTimeParseException: テキスト '2016-09-18T12:17:21:000Z'をインデックス19で解析できませんでした。 でjava.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:1949) at java.time.format.DateTimeFormatter.parse(DateTimeForm atter.java:1851) core.domain.converters.TestDateTime.main(TestDateTime.java:10でjava.time.Instant.parse(Instant.java:395))で
私はその変化完全に停止への最後のコロン:
String dateInString = "2016-09-18T12:17:21.000Z";
...実行は罰金行く:
2016-09-18T15:17:21 + 03:00 [ヨーロッパ/キエフ]
ですから、質問はどのようにInstant
とDateTimeFormatter
で日付を解析するのですか?
実際には、標準はCOMMA *または* FULL STOP(ピリオド)で、**カンマが優先されます**。 * ISO 8601:2004 *第3版2004-12-01のセクション「4.2.2.4小数部の表現」を参照してください。小数点以下の桁数は、整数部からISO 31-0で指定された小数点記号、コンマ[、]または完全停止[。]。これらのうち、コンマが優先記号です。ISOのためではなく、JDKでたぶん... –
@basil、[小数点を使用する](http://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatterBuilder.html# appendFraction-java.time.temporal.TemporalField-INT-INT-boolean-) – Bohemian