How do I print the time adjusted for Summer Time?

After reading many forum posts and web pages on the correct way to display local time adjusted for daylight savings (summer time) here in the UK, I came up with the code below. This displays raw GMT however with no adjustment.

I am running Java 1.5.0_06 in Netbeans 6.5 on a PC running Windows XP with the timezone set for GMT and "automatically adjust for daylight saving changes" ticked. Is there anything else I need to define for the Java environment or is my code just wrong? If I tear any more hair out I'll soon be bald :-(
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss zzzz");
sf.setTimeZone(TimeZone.getTimeZone("GMT"));
String lvTimestamp = df.format(new Date());
System.out.println(lvTimestamp);

Open in new window

Richard JebbAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

objectsCommented:
> sf.setTimeZone(TimeZone.getTimeZone("GMT"));

you tell it to use GMT, not local time
To use local time, just remove that line
0
Richard JebbAuthor Commented:
If you look at my details below the original post you will see that my local time zone is currently British Summer Time (ie GMT + 1.0). According to the information I have read online, the Java timezone class is supposed to understand the dates for daylight saving for the time zones it supports, and so I am trying to set whatever is the correct  time zone ID for the UK, so that it picks up the fact that we are currently on summer time and so actually GMT+1 rather than GMT+0.

I did what you suggested but it made no difference. However it did make me  think that perhaps "GMT" was not the correct time zone to use, and was simply telling the system to always use GMT with no daylight saving applied.

I printed out the list of known time zone identifiers to see what they were, and if I use

df.setTimeZone(TimeZone.getTimeZone("Europe/London")

then it does correctly figure out the daylight savings
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
objectsCommented:
yes , am pretty sure the GMT timezones do not take daylightsaving into account (as they do not indicate the country), and are just straight GMT offsets
0
objectsCommented:
> I did what you suggested but it made no difference.

that would be because your pc's timezone is not setup correctly
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Java

From novice to tech pro — start learning today.