SimpleDateFormat更改日期的时区

时间:2017-09-21 20:54:52

标签: java date

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设备上运行。

我尝试更改LocaleSDF.setTimeZone()和更多不同的选项,但结果总是一样的。
有任何想法吗?

由于

1 个答案:

答案 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