If someone is using a particular version of the TZ database, you can probe about 5-6 past dates to discover the zone id (of course, you can't distinguish the zones that have the same rules). We do that in browsers, where there isn't an API to get the zone. 

Where the browser isn't using the TZ database (eg windows), you'll just get an approximation.

Mark
— Il meglio è l’inimico del bene —



On Mon, Aug 8, 2011 at 21:16, Olson, Arthur David (NIH/NCI) [E] <olsona@dc37a.nci.nih.gov> wrote:
I'm forwarding this message from Conrad Irwin, who is not on the time zone mailing list. Those of you who are on the list, please direct replies appropriately.  --ado

-----Original Message-----
From: Conrad Irwin [mailto:conrad.irwin@gmail.com]
Sent: Monday, August 08, 2011 7:59
To: tz@lecserver.nci.nih.gov
Subject: Fingerprinting timezones

Hello there,

Thank you for the timezone database - it is a phenomenal resource.

The problem I would like to solve is that of having to ask a user of a
web-app for their timezone. While there is no way to directly query
for the user's timezone, the javascript engine in their web-browser is
capable of telling me the offset from UTC at any date.

It seems like, by selecting some number of dates to query, I should be
able to gather enough information to uniquely identify any given
timezone (or at least make a very good guess for a large proportion of
the user-base).

Before I embarked on doing this, I wanted to ask if anyone has seen a
similar attempt in the past? Are there some "gotchas" that mean that
this isn't actually as feasible as I naïvely hope?

Conrad