Parsing Java String into GMT Date

java

Solution

You are using `format.setTimeZone(TimeZone.getTimeZone("GMT"));` in the formatter, which is being used in formatting the string into date i.e.

      Date date = format.parse("2012-10-29T12:57:00-0000");

is parsed treating `2012-10-29T12:57:00-0000` was a `GMT` value, but you are printing `date` which uses local timezome in printing hence you are noticing the difference.

If you want to print the date back in `GMT`, please use:

    String formattedDate = format.format(date);

and print the `formattedDate`. This will be `GMT`.

    System.out.println(formattedDate);

Problem

I'm trying to parse a String that represents a date using GMT, but it prints out in my timezone on my PC (pacific). When I run the below I get the below output. Any ideas on how to get the parse to parse and return a GMT date? If you look below I'm setting the timezone using format.setTimeZone(TimeZone.getTimeZone("GMT")); but its not producing the desired result. output from below code: Mon Oct 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")); } } ```

Original source

Related problems