I a newbie to java and hence haven't been able figure this out since quite some time.
I am using Windows XP and the machine is set to TimeZone: Eastern Time (US & Canada).
I have a Java application, which takes the current system time and timezone info and writes a string like: 20101012 15:56:00 EST, to a file.
The last piece of Date above, i.e.: the timezone, changes from EST to EDT as i change my system date.
Being precise: From November(eg: Nov2009) to March (Mar 2010), it is EST, otherwise EDT.
EST is what I want ALWAYS and not EDT.
Is there any particular class / function, by which I can always read it as EST?
Awaiting for response.
Thanks for your replies. Well, I forgot to mention a few things.
I want my machine to be set to: Eastern Time (US & Canada) in the windows time zone settings.
In simple terms, What i want to do is: get my machine time, and write it to a text file
I am aware of the daylight saving which happens from March to Nov.
But the problem is, when I write my machine time to the file, it is written as 2010 01 12 15:56:00 EST if daylight saving (DST) is not present and as 20101012 15:56:00 EDT, if DST is present. My concern is, whether it is DST or not, I want to write EST always.
I would create a custom zone:
TimeZone alwaysEst = TimeZone.getTimeZone("EST+5");
That will report as EST and will always be 5 hours ahead of UTC. In particular, do not choose an existing timezone or you will eventually get burned when a zone update changes the definition.
Do be aware that by forcing EST the dates you log will only match the time displayed by the system for 5 months out of the year. The other 7 months you'll be an hour off. It may simplify parsing the file, but it will confuse users.