I have never had that happen though I have had the world clock be off by one hour before, but first for yours. Start with the obvious tricks, do a reset and see if that takes care of it. If it does not, delete all the world times in there and then do a reset and see if that works. I had to do this with mine when my home city time was off by one hour.
I am not sure, but it appears that the phone knows what the offset should be by the location you are in when you set the home time. I did it when I was in Vancouver and the local time was in Vancouver. When I returned from my trip I noticed that SLC time was one hour fast. I had to delete it and add it, but then it was still off by the hour. So I did a delete and a reset and then added and it was fine.
As a last resort you can also restore the phone and hopefully that will fix the glitch. Also make sure you are good on the general prefs though I am not sure those matter. I have my 24 hour off, set auto on, time zone support on, and time zone set locally. I doubt those will matter though, but you never know.