デフォルトでは、メソッドのInstant
はDateTimeFormatter.ISO_INSTANTフォーマッタを使用します。固定のミリ秒桁のjava.time ISOの日付書式(Java 8以降)
2015-10-08T17:13:07.589Z
2015-10-08T17:13:07Z
Joda-Time例(と私がjava.timeから期待):彼らは0
java-time例に起こる場合にフォーマッタは、分数の秒の桁が印刷されません。
2015-10-08T17:13:07.589Z
2015-10-08T17:13:07.000Z
これは、一部のシステムで解析するのが本当に不愉快です。 Elasticsearchが私が遭遇した最初の問題でした。オプションのミリ秒をサポートする事前定義されたフォーマットはありませんが、おそらくカスタムフォーマットで回避することができます。デフォルトは間違っているようです。
とにかくインスタンス用の独自の書式文字列を実際に作成することはできないようです。私の独自のjava.time.format.DateTimeFormatterBuilder.InstantPrinterParserを実装する唯一のオプションはありますか?
あなたの目標は、日付の精度がミリ秒かどうかを調べることです。 –
目標は、ミリ秒が0に等しい場合でも、分数秒の部分で日付を書式設定することです。つまり、Jodaの動作を模倣します。 –
クイックリマインダー:java.timeは、Joda-Timeおよびjava.util.Dateのミリ秒の解像度とは対照的に、[ナノ秒](https://en.wikipedia.org/wiki/Nanosecond)の解像度を提供します。これは、最大9桁の小数点以下2桁の意味です。したがって、3に制限すると、データが隠れている/失われている可能性があります。 [私のこの図](http://i.stack.imgur.com/OW0RW.png)を参照してください。 –