从字符串解析日期

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):

由于在Java 8中引入了java.time包,Joda-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
    }
}

注意,在处理日期时,如果解析或格式化日期时间而不仅仅是日期,始终要注意时区设置。