【发布时间】:2015-01-27 05:32:55
【问题描述】:
当尝试转换 UTC 日期时,我没有得到 UTC 日期,我的代码问题出在哪里:
String date = "Mon, 26 Jan 2015 19:46:51 GMT";
DateFormat df = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.ENGLISH);
df.setCalendar(new GregorianCalendar(TimeZone.getTimeZone("UTC")));
df.setTimeZone(TimeZone.getTimeZone("UTC"));
Date d = df.parse(date);
System.out.println(d);
输出如下:
Mon Jan 26 20:46:51 CET 2015
我想要:
Mon, 26 Jan 2015 19:46:51 GMT
【问题讨论】:
-
“我没有给出 UTC 日期”是什么意思?您的问题不清楚。
-
你的输入是 19:46,你的输出是 19:46 - 你给一个多小时是什么意思?在哪里?
-
我现在无法为 Java 检查这个。但我的猜测是使用 Windows。 Windows 将本地时间存储为系统时间,大多数事情都希望系统时间为 UTC(也猜测 Java,这将使它返回您的本地时间为 UTC)编辑:同样在冬季 UTC = GMT(出于实际人类目的)
-
您给出了两个不同版本的输出 - 为什么?你实际得到的是哪个?
-
(你能检查修改后的问题文本是不是你想要的吗?)