我得到以下格式的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));

10-07 12:25