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设备在Android设备上运行。
我尝试更改Locale
,SDF.setTimeZone()
和更多不同的选项,但结果总是一样的。
有任何想法吗?
由于
答案 0 :(得分:0)
嗯,问题实际上是在Date
对象中,它只对所有toString
方法使用默认时区。
在Andreas的帮助下找到了我想要的东西:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
df.setTimeZone(TimeZone.getTimeZone("GMT+2")); // set whatever timezone you want.
String resultString = df.format(mDate);
resultString = 2017-09-21 18:15:00