🚀

DateTimeFormatter を使っていてエラーが出た時の対処について

2024/12/15に公開

想定読者

Java初学者

開発環境

Mac OS

メインコンテンツ

実装したい内容

2018-01-28T23:45:32

現れたエラー

Exception in thread "main" java.time.format.DateTimeParseException: Text '2018/01/28 23:45:32' could not be parsed at index 14
        at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2052)
        at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1954)
        at java.base/java.time.LocalDateTime.parse(LocalDateTime.java:494)
        at DataTimeSample5_1017.main(DataTimeSample5_1017.java:16)

実際のコード

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DataTimeSample5_1017 {
    public static <DataTimeFormatter> void main(String[] args) {

        String s = "2018/01/28 23:45:32";

        DateTimeFormatter f2 = DateTimeFormatter.ofPattern("yyyy/mm/dd HH:mm:ss");
        LocalDateTime ff2 = LocalDateTime.parse(s, f2);
        System.out.println(ff2);
    }
}

結論

  • 問題となっていたのは "yyyy/mm/dd HH:mm:ss" の書き方でした。
    "yyyy/mm/dd HH:mm:ss" の箇所の大文字、小文字の誤りに気づきませんでした。

修正後

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DataTimeSample5_1017 {
    public static <DataTimeFormatter> void main(String[] args) {

        String s = "2018/01/28 23:45:32";

        DateTimeFormatter f2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss");
        LocalDateTime ff2 = LocalDateTime.parse(s, f2);
        System.out.println(ff2);
    }
}
2018-01-28T23:45:32

感想

これで解決できました。
単純ですが気づくのに時間がかかったので共有します。
ご指摘等ありましたが教えてください。
読みにくいコードですみません。
ご視聴ありがとうございました。

Discussion