目录
一、字符串转时间
在 Java 中,可以使用 java.time
包中的 DateTimeFormatter
类将字符串格式的日期时间转换为 LocalDateTime
或 ZonedDateTime
对象。
(一)使用预定义格式
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class StringToDateExample {
public static void main(String[] args) {
String isoDateTime = "2023-10-11T12:34:56";
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
LocalDateTime dateTime = LocalDateTime.parse(isoDateTime, formatter);
System.out.println("解析后的日期时间: " + dateTime);
}
}
(二)自定义格式
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CustomStringToDateExample {
public static void main(String[] args) {
String customDateTime = "2023-10-11 12:34:56";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime dateTime = LocalDateTime.parse(customDateTime, formatter);
System.out.println("解析后的日期时间: " + dateTime);
}
}
二、时间转字符串
将日期时间对象格式化为字符串,可以使用 DateTimeFormatter
类。
(一)使用预定义格式
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateToStringExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
String formattedDate = now.format(formatter);
System.out.println("ISO格式日期时间: " + formattedDate);
}
}
(二)自定义格式
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CustomDateToStringExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDate = now.format(formatter);
System.out.println("自定义格式日期时间: " + formattedDate);
}
}
三、处理不同时区的日期
在处理不同时区的日期时,可以使用 ZonedDateTime
类。
(一)字符串转带时区的日期时间
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class StringToZonedDateTimeExample {
public static void main(String[] args) {
String zonedDateTimeString = "2023-10-11T12:34:56-04:00";
DateTimeFormatter formatter = DateTimeFormatter.ISO_ZONED_DATE_TIME;
ZonedDateTime zonedDateTime = ZonedDateTime.parse(zonedDateTimeString, formatter);
System.out.println("解析后的带时区日期时间: " + zonedDateTime);
}
}
(二)带时区的日期时间转字符串
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class ZonedDateTimeToStringExample {
public static void main(String[] args) {
ZonedDateTime now = ZonedDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss z");
String formattedDate = now.format(formatter);
System.out.println("带时区的日期时间字符串: " + formattedDate);
}
}
四、总结
Java 的 java.time
包提供了强大的日期和时间处理功能,通过 DateTimeFormatter
可以轻松地在日期时间对象和字符串之间进行转换。希望本文的示例和讲解对您有所帮助,如果您在处理日期和时间转换时有任何疑问,欢迎随时交流探讨!