Java如何在GMT时区中将字符串转换为Date?

以下代码段将日期的字符串表示形式转换为java.util.Date对象,并将时区设置为GMT。为了解析字符串,这样的结果是在格林尼治标准时间,你必须设置TimeZone的的DateFormat物体插入GMT。

package org.nhooo.example.text;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public class WithTimezoneStringToDate {
    public static void main(String[] args) {
        // 创建一个DateFormat并将时区设置为GMT。
        DateFormat df = new SimpleDateFormat("E, dd MMM yyyy HH:mm:ss z");
        df.setTimeZone(TimeZone.getTimeZone("GMT"));

        try {
            // 将字符串转换为日期
            Date today = df.parse("Mon, 16 Apr 2018 00:00:00 GMT+08:00");
            System.out.println("Today = " + df.format(today));
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }
}

上面的代码段显示以下输出:

Today = Sun, 15 Apr 2018 16:00:00 GMT