示例 :
2025-02-25T14:23:58-08:00
解释:
这个时间表示的是 2025 年 2 月 25 日 14 点 23 分 58 秒,时区是 UTC-8,也就是西八区时间。通常用于美国西海岸(例如洛杉矶)和一些其他使用 UTC-8 时区的地区。
转换 :
import java.time.*;
import java.time.format.DateTimeFormatter;
public class TimeConversion {
public static void main(String[] args) {
// 定义输入时间字符串和日期格式
String inputTime = "2025-02-25T14:23:58-08:00";
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
// 解析输入的时间字符串,转换为 ZonedDateTime 对象
ZonedDateTime utcTime = ZonedDateTime.parse(inputTime, formatter);
// 将 UTC 时间转换为中国标准时间 (CST, UTC+8)
ZonedDateTime chinaTime = utcTime.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));
// 输出转换后的中国时间
System.out.println("中国时间: " + chinaTime.format(formatter));
}
}
输出 :
中国时间: 2025-02-26T06:23:58+08:00
这样还是带 “T” ,那么如何转换出来没有带“T”的呢?
转换:
import java.time.*;
import java.time.format.DateTimeFormatter;
public class TimeConversion {
public static void main(String[] args) {
// 定义输入时间字符串和日期格式
String inputTime = "2025-02-25T14:23:58-08:00";
DateTimeFormatter formatter = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
// 解析输入的时间字符串,转换为 ZonedDateTime 对象
ZonedDateTime utcTime = ZonedDateTime.parse(inputTime, formatter);
// 将 UTC 时间转换为中国标准时间 (CST, UTC+8)
ZonedDateTime chinaTime = utcTime.withZoneSameInstant(ZoneId.of("Asia/Shanghai"));
// 定义自定义格式(没有T符号)
DateTimeFormatter customFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 输出转换后的中国时间,没有T符号
System.out.println("中国时间: " + chinaTime.format(customFormatter));
}
}
输出 :
中国时间: 2025-02-26 06:23:58
好了就到这。