【发布时间】:2017-10-27 16:39:07
【问题描述】:
我以这种格式从 API 接收日期:
yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'
并以这种方式转换:
String rawDate = "2017-05-11T15:46:48.2226756Z";
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z'", Locale.getDefault());
Date date = simpleDateFormat.parse(rawDate);
System.out.println(date); //Thu May 11 16:23:54 PDT 2017
但是日期输出是这样的:
2017 年 5 月 11 日星期四 16:23:54 PDT
输出应该是:
2017 年 5 月 11 日星期四 15:46:48 PDT
如何正确转换原始日期?
【问题讨论】:
-
您应该使用 DateFormat。您可以在这里找到示例:stackoverflow.com/questions/454315/…
-
尝试将 rawData 设置为“yyyy-MM-dd'T'HH:mm:ss”。
-
为什么你有
'Z'作为文字? -
这里有人误解了一些东西。 Z 表示祖鲁时区,也称为 UTC。所以输出肯定是 not 应该是 Thu May 11 15:46:48 PDT 2017,而是 15:46:48 UTC,等于太平洋夏令时间 8:46:48。错误是写字符串还是解释错误,我不敢说。
标签: java android date datetime datetime-format