Java字符串转为Date

在Java中,日期时间的处理是非常常见的任务。有时候我们需要将一个字符串表示的日期时间转化为Date对象以便进行后续的操作。本文将介绍如何使用Java语言将字符串转为Date对象,并提供代码示例。

1. SimpleDateFormat类

在Java中,我们可以使用SimpleDateFormat类来进行日期时间的格式化和解析。该类是java.text包中的一员,用于格式化和解析日期与时间。它使用指定的模式进行日期时间的格式化和解析。

1.1 格式化日期时间

我们首先来看一下如何将Date对象格式化为字符串表示。

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

public class DateFormatExample {

    public static void main(String[] args) {
        Date currentDate = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = sdf.format(currentDate);
        System.out.println("Formatted Date: " + formattedDate);
    }
}

上述代码中,我们首先创建了一个Date对象表示当前日期时间,然后创建了一个SimpleDateFormat对象,并指定了日期时间的格式模式为"yyyy-MM-dd HH:mm:ss"。最后,我们通过调用format()方法将Date对象格式化为指定模式的字符串表示。

执行上述代码,输出的结果应该类似于:

Formatted Date: 2022-01-01 12:34:56

1.2 解析字符串为日期时间

接下来我们看一下如何将字符串表示的日期时间解析为Date对象。

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

public class DateParseExample {

    public static void main(String[] args) {
        String dateString = "2022-01-01 12:34:56";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date parsedDate = sdf.parse(dateString);
            System.out.println("Parsed Date: " + parsedDate);
        } catch (ParseException e) {
            System.out.println("Invalid date format");
        }
    }
}

上述代码中,我们首先创建了一个字符串dateString表示日期时间,然后创建了一个SimpleDateFormat对象,并指定了日期时间的格式模式为"yyyy-MM-dd HH:mm:ss"。接着,我们通过调用parse()方法将字符串解析为Date对象。如果解析成功,将打印出解析后的Date对象;否则,将打印出"Invalid date format"。

执行上述代码,输出的结果应该为:

Parsed Date: Sat Jan 01 12:34:56 CST 2022

2. DateTimeFormatter类

从Java 8开始,引入了java.time包,提供了一组新的日期时间API。其中,DateTimeFormatter类可以用于格式化和解析日期时间。

2.1 格式化日期时间

我们首先来看一下如何使用DateTimeFormatterLocalDateTime对象格式化为字符串表示。

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

public class DateTimeFormatterExample {

    public static void main(String[] args) {
        LocalDateTime currentDateTime = LocalDateTime.now();
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String formattedDateTime = currentDateTime.format(dtf);
        System.out.println("Formatted DateTime: " + formattedDateTime);
    }
}

上述代码中,我们首先创建了一个LocalDateTime对象表示当前日期时间,然后创建了一个DateTimeFormatter对象,并指定了日期时间的格式模式为"yyyy-MM-dd HH:mm:ss"。接着,我们通过调用format()方法将LocalDateTime对象格式化为指定模式的字符串表示。

执行上述代码,输出的结果应该类似于:

Formatted DateTime: 2022-01-01 12:34:56

2.2 解析字符串为日期时间

接下来我们看一下如何使用DateTimeFormatter将字符串表示的日期时间解析为LocalDateTime对象。

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

public class LocalDateTimeParseExample {

    public static void main(String[] args) {
        String dateTimeString = "2022-01-01 12:34:56";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        try {
            LocalDateTime parsedDateTime = LocalDateTime.parse(dateTimeString, dtf);
            System.out.println("Parsed DateTime: "