我获得以下格式的 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));
最佳答案
您的代码中有两个错误。
- 正如其他人已经提到的,您的模式中
Z
周围还有额外的'
。 - 您将模式指定为
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/