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 总结