带TZ字样的0时区UTC时间格式化为东八区
TZ
的Z
是zero timezone 0时区的意思。带TZ的时间是UTC=0的时间- SimpleDateFormat默认使用系统日历时区,必须手动指定0时区,才能正确解析TZ时间
- 详细测试代码见下:
@SneakyThrows
public static void main(String[] args) {
String plainText = "2024-01-31T14:32:19Z";
System.out.println("0时区时间串:" + plainText);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
// SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-ddTHH:mm:ssZ"); // 报错 Illegal pattern character 'T'