I\'m converting time from CST to local time but getTimeZone
doesn\'t seem to work properly.
String cstTime = \"2013-06-21 14:00:00\";
S
One thing I found is that Java's TimeZone doesn't recognize "+09:00", but it does recognize "GMT+09:00" and "GMT+0900".
You can use "CST6CDT" Timezone it will automatically provide you the correct time when the Central Daylight Time (CDT) switched back to CST or vice versa.
From the javadoc for getTimeZone:
Returns a TimeZone corresponding to the given id, or GMT for unknown ids.
An ID can be an Olson name of the form Area/Location, such as America/Los_Angeles.
The getAvailableIDs() method returns the supported names.
Try using getAvailableIDs?
The following code helped me.
TimeZone tzone = TimeZone.getTimeZone("Singapore");
// set time zone to default
tzone.setDefault(tzone);
The following seems to have worked for me as was facing similar issues:
Calendar c = Calendar.getInstance(TimeZone.getTimeZone("America/Chicago"));
for any date time conversion i would suggest using JODA date time, its help me solve a bunch of date time issues.
you can initialize a date with a time zone, and convert between them very easily
DateTimeZone zone = DateTimeZone.forID("Europe/London");
or
DateTimeZone zoneUTC = DateTimeZone.UTC;
from JODA DATE TIME API
DateTime(DateTimeZone zone)
Constructs an instance set to the current system millisecond time using ISOChronology in the specified time zone.