この例外のバグを見つけるのに助けていただければ幸いです:
_Java.text.ParseException: Unparseable date: "2007-09-25T15:40:51.0000000Z"
_
そして次のコード:
_SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
Date date = sdf.parse(timeValue);
long mills = date.getTime();
this.point.time = String.valueOf(mills);
_
Date date = sdf.parse(timeValue);
でexpcetionをスローします。
_timeValue = "2007-09-25T15:40:51.0000000Z";
_、例外として。
ありがとう。
Z
はタイムゾーン文字を表します。引用する必要があります:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
Java 7 では、X
パターンを使用して、特別なZ
(UTC)値を含むISO8601タイムゾーンに一致させることもできます。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSSX");
Date date = sdf.parse("2007-09-25T15:40:51.0000000Z");
ただし、パターンにはミリ秒文字の正確な数が必要であるようです。これは、「Z」文字パターンには必要なく、むしろ不便です。これは、ISO8601の定義にも「2桁の時間」が含まれているためだと思います。これは単なる数字であり、パーサーによって前のミリ秒と区別することはできません。
したがって、このバージョンは、秒単位の精度のタイムスタンプには適していますが、ミリ秒の精度にはなりません。