Javaで文字列をLocalDateに変換する方法


  1. DateTimeFormatterを使用する方法:

    import java.time.LocalDate;
    import java.time.format.DateTimeFormatter;
    public class Main {
    public static void main(String[] args) {
        String dateStr = "2022-01-31";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate localDate = LocalDate.parse(dateStr, formatter);
        System.out.println(localDate);
    }
    }
  2. LocalDateの静的メソッドを使用する方法:

    import java.time.LocalDate;
    public class Main {
    public static void main(String[] args) {
        String dateStr = "2022-01-31";
        LocalDate localDate = LocalDate.parse(dateStr);
        System.out.println(localDate);
    }
    }
  3. SimpleDateFormatを使用する方法 (Java 8以前のバージョンには適用):

    import java.text.SimpleDateFormat;
    import java.util.Date;
    public class Main {
    public static void main(String[] args) throws Exception {
        String dateStr = "2022-01-31";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        Date date = format.parse(dateStr);
        LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        System.out.println(localDate);
    }
    }

これらの例では、文字列のフォーマットとパース方法を指定して、文字列をLocalDateオブジェクトに変換しています。適切な方法を選んで、自分のプロジェクトに組み込んでみてください。

なお、Java 8以降では、java.timeパッケージが導入され、新しい日付と時刻APIが提供されています。このAPIを使用することをおすすめします。