Torgo has asked for the wisdom of the Perl Monks concerning the following question:

OK. I know that someone, somewhere MUST have done this all before, but it ain't in the cookbook and damned if I can find it on the net.

I'm writing a time-sensitive application (a calendar/scheduler sort of thing) which may have users from time zones different than the server's time zone logging in. Each user has their own preferences, and I can easily add a dropdown or something that lets them select what time zone they're in.

Here's the big question: How do I go about converting epoch GMtime to a user's arbitrary timezone? A real timezone, accounting for daylight savings time, or absence thereof. Oh, another kicker is that it has to work on both UNIX and Windows servers (stop laughing!) so dependancy on /usr/share/zoneinfo is also a no-no.

I write the code while the master is away!