gsonでパースするときに DateTimeParseException になったメモ
gson で 日付をパースするときに原因不明のエラーになってハマりました
java.time.format.DateTimeParseException:
Text '2021-01-11T09:59:01' could not be parsed at index 19
もともと swagger から自動生成したコードで、
org.threeten.bp.OffsetDateTime が使われていたので、 java.time.OffsetDateTime に変更してもエラーは変わらず。
java.time.LocalDateTime に変更してもエラーは変わらず。
散々ハマってしまったけど、解決方法は下記でした
gson に設定する LocalDateTimeTypeAdapter の formatter の指定が下記になっていた
DateTimeFormatter.ISO_OFFSET_DATE_TIME
これを下記にしたら無事にパースできました
DateTimeFormatter.ISO_LOCAL_DATE_TIME
上記は、java.time.OffsetDateTime に変更している前提です。
OffsetDateTime のままだとやはりパースできず下記エラーになります。(オフセット部分がないので)
Unable to obtain ZoneOffset from TemporalAccessor:
{},ISO resolved to 2021-08-27T16:10:23 of type java.time.format.Parsed
threeten.bp パッケージ (ThreeTen Backport) は DateTime の機能をJava 6でも使えるように移植したものなので、今となっては使う必要性はないと思います。
Author And Source
この問題について(gsonでパースするときに DateTimeParseException になったメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/HideoYamada/items/7cce0eaa626ccfc1685f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .