将 UTC 转换为本地时区时发生 java 日期解析异常

标签 java java-time

我获得以下格式的 UTC 日期,如何将此 UTC 日期转换为我的本地时区?

我的输入日期是2015-03-17 06:00:00 +0000,我尝试了以下编码,它给出了解析异常。

我的代码:

DateFormat utcFormat = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss 'Z'");
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = utcFormat.parse("2015-03-17 06:00:00 +0000"); // java.text.DateFormat.parse(Unknown Source)
utcFormat.setTimeZone(TimeZone.getDefault());
System.out.println(utcFormat.format(date));

最佳答案

您的代码中有两个错误。

  1. 正如其他人已经提到的,您的模式中 Z 周围还有额外的 '
  2. 您将模式指定为 dd-MM-yyyy,但尝试将日期解析为 yyyy-MM-dd

正确版本:

DateFormat utcFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
utcFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = utcFormat.parse("2015-03-17 06:00:00 +0000");
utcFormat.setTimeZone(TimeZone.getDefault());
System.out.println(utcFormat.format(date));

关于将 UTC 转换为本地时区时发生 java 日期解析异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29703259/

相关文章:

java - 复制不带指定元素的数组java

java - 如何将可变参数作为参数传递给方法?

java.text.ParseException : Unparseable date : "..."

java - Timestamp.from 不注意 Instant 的时区

java - JPA 和 Hibernate 初始化非惰性集合错误

java - LibGdx 不缩放到整个屏幕

java - Android Studio : How to change the Background to jpg. 图像使用 OnclickListener

java - 给定LocalDate时如何获得一天的结束?

java - 我可以只创建一个 DateTimeFormatter 的静态实例吗

java - 如何在Java 7中获得国际原子时间