KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I would like to change the TIMEZONE value in a Java Calendar instance at runtime. I tried below. But the output is the same in both instances: Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); System.out.println(cSchedStartCal.getTime().getTime()); cSchedStartCal.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta")); System.out.println(cSchedStartCal.getTime().getTime()); OUTPUT: 1353402486773 1353402486773 I have tried this also but the output is still the same: Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); System.out.println(cSchedStartCal.getTime()); Calendar cSchedStartCal1 = Calendar.getInstance(TimeZone.getTimeZone("Asia/Calcutta")); cSchedStartCal1.setTime(cSchedStartCal.getTime()); System.out.println(cSchedStartCal.getTime()); In the API I am seeing the below comment but I am not able to understand much of it: * calls: cal.setTimeZone(EST); cal.set(HOUR, 1); cal.setTimeZone(PST). * Is cal set to 1 o'clock EST or 1 o'clock PST? Answer: PST. More * generally, a call to setTimeZone() affects calls to set() BEFORE AND * AFTER it up to the next call to complete(). Could you please help me? One Possible Solution : Calendar cSchedStartCal = Calendar.getInstance(TimeZone.getTimeZone("GMT")); long gmtTime = cSchedStartCal.getTime().getTime(); long timezoneAlteredTime = gmtTime + TimeZone.getTimeZone("Asia/Calcutta").getRawOffset(); Calendar cSchedStartCal1 = Calendar.getInstance(TimeZone.getTimeZone("Asia/Calcutta")); cSchedStartCal1.setTimeInMillis(timezoneAlteredTime); Is this solution ok?
Tags (comma-separated)
Save Edits
Cancel