I know how to convert local time to UTC time and vice versa. But I am very much confused about daylight savings time(DST) handling while doing this.
So can anyone answer the below questions:
1. Does java internally handle DST when converting between timezones?
2. What things I need to do while converting between timezones?
3. Any good article which explains about this more clearly?
Thanks in advance.
The code in TALE's answer can be simplified:
Here is the best solution that I've found. I'm copying it here, but the solution came from http://biese.wordpress.com/2014/02/28/the-easy-way-to-convert-local-time-to-utc-time/.
Are you sure you know how to convert dates to UTC and back? Correctly?
I am afraid, I doubt that.
The first thing first. Your program should store Date (or Calendar) in UTC TimeZone internally. Well, in fact in GMT, because there are no leap seconds in Java, but that is another story.
The only place when you should be in need of "converting", is when you are going to display the time to user. That regards to sending email messages as well. In both cases you need to format date to get its textual representation. To that you would use
DateFormat
and assign correct TimeZone:As you can see, Java cares about handling DST. You can of course handle it manually, just read the TimeZone related JavaDoc.