The existing public-domain time zone stuff lets you know how to represent local time if you provide the identity of the set of rules that apply. Recent mail has dealt with the matter of handling things such as geographic locations or phone system area codes. My sense is that layered software is the way to go. The bottom level turns a time-zone identifier into a representation of the rules that apply. Built on top of this are packages that take different forms of input (phone system area code, geographic location) and deliver up time-zone identifiers. The existing time-zone stuff is a bottom level. And there might be multiple higher levels--for example: topmost geographic location to phone system area code middle phone system area code to time zone identifier bottom time-zone identifier to rules that apply The organization of the higher levels would, of course, be immaterial to what goes on at the bottom level. A consideration in determining the time-zone identifiers to use in such a setup is the independent usability of the bottom level. The existing time zone stuff uses identifiers of the form big-geographic-region/city; this allows some meaningful applications (such as setting the local time to be used on a computer) without recourse to a higher level (proof by existence). There are other considerations as well (technological, political, technological, astrological...). And determining what to use as a time-zone identifier ought not be done in a vacuum: if the same identifier can be used for other purposes, we've simplified our lives.