将Java字符串解析为GMT日期

c12*_*c12 3 java

我正在尝试使用GMT解析表示日期的字符串,但它会在我的PC上(太平洋)打印出我的时区.当我运行以下时,我得到以下输出.关于如何解析解析并返回GMT日期的任何想法?如果你看下面我正在使用format.setTimeZone设置时区(TimeZone.getTimeZone("GMT")); 但它没有产生预期的结果.

以下代码输出:

星期一10月29日05:57:00 PDT 2012

 package javaapplication1;

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


    public class JavaApplication1 {

        public static void main(String[] args) throws ParseException {
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
            format.setTimeZone(TimeZone.getTimeZone("GMT"));
            System.out.println(format.parse("2012-10-29T12:57:00-0000"));
        }
    }
Run Code Online (Sandbox Code Playgroud)

Yog*_*ngh 8

您正在format.setTimeZone(TimeZone.getTimeZone("GMT"));格式化程序中使用,格式化程序用于将字符串格式化为日期,即

      Date date = format.parse("2012-10-29T12:57:00-0000");
Run Code Online (Sandbox Code Playgroud)

解析处理2012-10-29T12:57:00-0000是一个GMT值,但你打印date在打印时使用本地timezome因此你注意到差异.

如果您想重新打印日期GMT,请使用:

    String formattedDate = format.format(date);
Run Code Online (Sandbox Code Playgroud)

并打印出来formattedDate.这将是GMT.

    System.out.println(formattedDate);
Run Code Online (Sandbox Code Playgroud)