文字列から日付をパースする

Java:
文字列から日付をパースする

方法:

java.timeパッケージを使用する(Java 8以降で推奨):

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;

public class DateParser {
    public static void main(String[] args) {
        String dateString = "2023-04-30";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        LocalDate date = LocalDate.parse(dateString, formatter);
        System.out.println(date); // 出力: 2023-04-30
    }
}

SimpleDateFormatを使用する(古いアプローチ):

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateParser {
    public static void main(String[] args) {
        String dateString = "30/04/2023";
        SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
        try {
            Date date = formatter.parse(dateString);
            System.out.println(date); // 出力形式はシステムのデフォルト形式に依存します
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

サードパーティライブラリを使用する(例:Joda-Time):

Joda-Timeは重要なサードパーティライブラリでしたが、Java 8のjava.timeパッケージの導入により、現在はメンテナンスモードです。しかし、Java 8より前のバージョンを使用している場合、Joda-Timeは良い選択肢です。

import org.joda.time.LocalDate;
import org.joda.time.format.DateTimeFormat;
import org.joda.time.format.DateTimeFormatter;

public class DateParser {
    public static void main(String[] args) {
        String dateString = "2023-04-30";
        DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd");
        LocalDate date = LocalDate.parse(dateString, formatter);
        System.out.println(date); // 出力: 2023-04-30
    }
}

日付を扱う際は、日付だけでなく日時を解析または形式設定する場合は常にタイムゾーンの設定に注意してください。