Java 字符串时间转为 Date

在日常开发中,我们经常会遇到将字符串形式的时间转换为 Date 类型的需求。Java 提供了很多方式来实现这个转换过程,在本文中,我们将介绍其中两种常用的方法。

方法一:使用 SimpleDateFormat

SimpleDateFormat 是 Java 提供的一个日期格式化工具类,可以将日期对象按照指定的格式转换为字符串,同时也可以将字符串解析为日期对象。下面是一个示例代码:

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

public class DateFormatExample {
    public static void main(String[] args) {
        String dateString = "2021-07-01 12:34:56";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = dateFormat.parse(dateString);
            System.out.println(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

在上面的代码中,我们首先定义了一个字符串 dateString,它表示一个日期时间。然后,我们使用 SimpleDateFormat 类创建一个日期格式化对象 dateFormat,并指定了日期的格式为 yyyy-MM-dd HH:mm:ss。接下来,我们调用 dateFormat.parse() 方法将字符串解析为日期对象,并打印输出。

方法二:使用 DateTimeFormatter

Java 8 以后,引入了新的日期和时间 API,其中包括 DateTimeFormatter 类,它提供了一种更加灵活和线程安全的方式来格式化和解析日期。下面是一个使用 DateTimeFormatter 的示例代码:

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

public class DateTimeFormatterExample {
    public static void main(String[] args) {
        String dateString = "2021-07-01 12:34:56";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime dateTime = LocalDateTime.parse(dateString, formatter);
        System.out.println(dateTime);
    }
}

在上面的代码中,我们首先定义了一个字符串 dateString,它表示一个日期时间。然后,我们使用 DateTimeFormatter.ofPattern() 方法创建一个日期格式化对象 formatter,并指定了日期的格式为 yyyy-MM-dd HH:mm:ss。接下来,我们调用 LocalDateTime.parse() 方法将字符串解析为日期对象,并打印输出。

总结

无论是使用 SimpleDateFormat 还是 DateTimeFormatter,都可以很方便地将字符串形式的时间转换为 Date 类型。其中,SimpleDateFormat 是一个老的日期格式化工具类,它在多线程环境下可能存在线程安全问题;而 DateTimeFormatter 是 Java 8 引入的新的日期和时间 API,它提供了更加灵活和线程安全的日期处理方式。在实际开发中,我们可以根据具体的需求选择合适的方式来进行时间转换。


关系图:

erDiagram
    DATE -- 0..1 SIMPLEDATEFORMAT
    DATE -- 0..1 DATETIMEFORMATTER
    SIMPLEDATEFORMAT ||--|| PARSE_EXCEPTION : extends
    DATETIMEFORMATTER ||--|| DATE_TIME_FORMATTER : extends

旅行图:

journey
    title Java 字符串时间转为 Date
    section 方法一:使用 SimpleDateFormat 类
    section 方法二:使用 DateTimeFormatter 类
    section 总结