For a while I had been casually searching for a way to overlay US time zones over a map for a project I was working on. It was never important enough to have a solution that required paying for something so I was searching for some type of government data source.
My first attempt was to use this large international timezone map, this wikipedia map or the list of US states by time zone and then trace and outline over the states. This turned out to be a non-starter because the maps aren't detailed enough and the list of states doesn't give you enough information.
I figured I would end up looking for ESRI shape files at some point and that is where I turned next. An initial google search got me to a post that led to a link to what should have been a set of shape files. Of course the link was dead so I turned to archive.org and found that the archive was incomplete.
I reverted back to looking for another source and found a set of shapes that ended up being just a bunch of squares. At this point I had gone over a lot of random links that didn't get me anything and I was about to give up for good when I finally found the USGS atlas site's time zone data. This was the jackpot, not only do they have time zone shapefiles but they have a large number of other shapefiles that could come in handy some day. This quest has made it apparent to me that the government doesn't do a great job of getting their data found.
One helpful tool in my shapefile search was ESRI's free Arc Explorer. It was a quick way to validate the shapefiles where or where not what I was looking for before landing on a set of files that would work.
Now that I had a valid set of time zone shapes I created a simple java application using geotools to read the files in and generate a resulting map graphic that I could overlay in the project. The shapefiles are easily converted to lat/lon polygons so using this data to overlay on something like a google map would be even easier.