【发布时间】:2017-09-21 20:54:52
【问题描述】:
Date mDate;
public static final String DATE_FORMAT = "EEE, dd MMM yyyy hh:mm:ss Z";
String stringDate = "Thu, 21 Sep 2017 18:15:00 +0200";
final SimpleDateFormat SDF = new SimpleDateFormat(DATE_FORMAT,Locale.ENGLISH);
mDate = SDF.parse(stringDate);
stringDate = "Thu, 21 Sep 2017 18:15:00 +0200"
mDate result string representation = "Thu Sep 21 19:15:00 GMT+03:00 2017"
你可以看到时区和小时改变了,我不知道为什么。
环境是运行在安卓设备上的android studio。
我尝试更改Locale、SDF.setTimeZone() 和其他一些不同的选项,但结果始终相同。
有任何想法吗?
谢谢
【问题讨论】:
-
toString()的实现Date总是在默认时区呈现字符串。这是它可以做的唯一事情,因为Date对象没有时区。如果您希望日期值显示在另一个时区,则需要使用具有适当时区的格式化程序。