In addition to my previous message:

http://stackoverflow.com/questions/41504/timezone-lookup-from-latitude-longitude

I will probably use this approach to determine initial client timezone since
I'm already use URL/IP to location functionality there:
http://github.com/dmitrygusev/ping-service/blob/master/ping-service/src/dmitrygusev/ping/services/IPUtils.java

(FYI this class uses http://ip-whois.net to resolve locations.)

In current implementation I'm using UTC time by default in ping-service
(GAE's default timezone), but user may specify its timezone in profile.

On Thu, Aug 19, 2010 at 12:36, Dmitry Gusev <dmitry.gu...@gmail.com> wrote:

> I didn't use one, but I believe such service exists that resolves client
> timezone by client IP.
> Client IP -> Location -> TimeZone. And this all may be resolved in very
> first request.
>
>
> On Thu, Aug 19, 2010 at 10:43, Fernando Padilla <f...@alum.mit.edu> wrote:
>
>>  Since our apps deals with sports team schedules, timezones are important
>> for us.  That's why I kept trying to suggest timezone support, whenever you
>> discussed locale support.
>>
>> But your main question is how to determine a client's timezone.  There is
>> no http-header way to get it, and a Javascript timezone detector is the only
>> thing I could come up with.  Even with Javascript timezone detection, you
>> will not know a user's timezone on their first request, only after the
>> timezone detector executes, calls back to the server, and a user's
>> httpsession has been updated with their timezone.
>>
>> Even if after you're OK with that, Javascript only gives you access to an
>> offset for a particular date, but not the actual timezone Id.  To get the
>> timezone Id you have to take some offset samples for a few dates, and back
>> track those samples against the timezone database in Java.
>>
>> What I did, was to take a few date samples ( jan, jun, today, two weeks
>> from today ), and generate the offsets for those dates on the client-side,
>> then compare those values against all known timezones on the server-side.
>>  That will give you a short list of possible timezones that will all work
>> for the user.  Then I just store that against the user (httpSesstion), much
>> as you would store the user's Locale - through putting timezoneid in url is
>> not an option.
>>
>> If you're interested, what's the best way to give you the few files that
>> would get you started?  attach to a bug?
>>
>>
>> - TimeZoneLookup.java
>>   - service, does the timezone database lookup, versus date offset samples
>> - components/common/TimeZoneDetector.java
>> - components/common/TimeZoneDetector.js
>>   - component that executes javascript to get date offset samples, and
>> calls back to server for capturing
>>   - doesn't render if timezone has been detected already
>>   - we have our layout include timezone detector, so all pages include it
>> - pages/common/TimeZoneDetector.java
>>   - javascript calls back independent page (not component action)
>>   - because i don't want to deal with unnecessary page activation of pages
>> containing the Detector
>>
>>
>>
>>
>> On 8/7/10 9:10 AM, Howard Lewis Ship wrote:
>>
>>> This is something that's been nagging me. Although there's a bunch of
>>> good
>>> options for selecting a date (or date/time) as JavaScript components bult
>>> into Tapestry, or available elsewhere ... none of them address the issue
>>> of
>>> the client and the server operating in different time zones.
>>>
>>> At the very least, these components probably should include a time zone
>>> drop
>>> down list (or other means of selection).
>>>
>>> I haven't been able to find a sure-fire way of determing the user's time
>>> zone from the HttpRequest.
>>>
>>> I'm curious what kinds of solutions the community have used to address
>>> this
>>> issue. It would be nice to come up with a true solution for Tapestry 5.3.
>>>
>>> One option is a bit of JavaScript that reports the client's time zone (or
>>> just time) to the server so that the server can identify their time zone
>>> automatically.
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
>> For additional commands, e-mail: users-h...@tapestry.apache.org
>>
>>
>
>
> --
> Dmitry Gusev
>
> AnjLab Team
> http://anjlab.com
>



-- 
Dmitry Gusev

AnjLab Team
http://anjlab.com

Reply via email to