Add Your City To Linux's List of Time Zones
Ever feel like you're Rodney Dangerfield? You live someplace and Linux shows you no respect, time-zone-wise that is. What I mean is that you live somewhere that's not one of the time-zones that comes predefined with Linux. If that sounds like you, then read on and get Linux to show you a little respect.
Let's say for instance that we want to add Seattle, WA (the birthplace of Linux Journal) to the list of time-zones that Linux knows about. First, look in the list of predefined time-zones for a city that's in the the same time-zone as the city you want to add, in this case Los Angeles. Then as root do the following:
$ cd /usr/share/zoneinfo
$ cp America/Los_Angeles America/Seattle
This will make the new "Seattle" time-zone use the same time-zone data as "Los Angeles" uses. Note: if /usr/share/zoneinfo doesn't exist try /usr/lib/zoneinfo.
Now edit the file /usr/share/zoneinfo/zone.tab and find the line for the time-zone that you copied, in this case "Los Angeles":
US +340308-1181434 America/Los_Angeles Pacific Time
Duplicate that line and change the old time-zone name to the new one:
US +473622-1221955 America/Seattle Pacific Time
The numbers are the latitude and longitude of the city in the form +/-DDMM+/-DDDMM or +/-DDMMSS+/-DDDMMSS (D=Degrees, M=Minutes, S=Seconds). You can find that information on the web, for example at infoplease.
Now, logout and log back in and you should see your new time-zone in the list of available time-zones. The screenshot below shows it added to the list of time-zones that are displayed when I hover the mouse over the KDE clock.