SimpleDateFormat does not support timezone
I have a date object in the following format:
Sun Jan 20 10:12:27 GMT + 02: 00 2013
the above time is displayed correctly in Microsoft Outlook:
Sun 1/20/2013 12:12 PM (This time is in GMT + 2 β)
when trying to format a date object with, it SimpleDateFormat
appears as in Outlook using the following code:
SimpleDateFormat sdf=new SimpleDateFormat(
"EEE M/d/yyyy hh:mm a");
String receivedDate = sdf.format(email.getDateTimeReceived());
formatting result:
Sun 1/20/2013 10:12 AM
so there is no two hour time zone difference.
please advise how to fix this, thanks.
source to share
You forgot to report SimpleDateFormat
to include time zone information.
This will do the trick:
SimpleDateFormat sdf=new SimpleDateFormat(
"EEE M/d/yyyy hh:mm a zzzZ yyyy");
Pay attention to the upper case Z
at the end to show the time difference
This will print:
Sun 1/20/2013 12:09 pm CET + 0100 2013
if you need it to be GMT you can force it like this:
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
It will now print:
Sun 1/20/2013 11:11 GMT GMT + 0000 2013
if you don't need AM / PM just remove a
source to share