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 格式化日期时间
我们首先来看一下如何使用DateTimeFormatter
将LocalDateTime
对象格式化为字符串表示。
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: "