Sorry to bring up a really old thread, but this problem started to annoy Win32 users of my software (DateTime::TimeZone->new('local') dies with "Cannot determin local timezone even with TZ=JST-9 correctly set)
On 8/7/06, Dave Rolsky <[EMAIL PROTECTED]> wrote:
> Hi, with these patches, DateTime::TimeZone->new('local') > will work properly under the cirtcumstances with TZ=JST-9 > (common setting in Japan, means TZ=+0900). If JST-9 is a common time zone, I'd think the simplest thing would be to just add it to the list of links in DateTime::TimeZoneCatalog, and link it to the Asia/Japan zone. Of course, then it'd have the same DST rules as that zone, which may not be what you want.
We don' t have DST here and there's no problem. Actaully now I can see JST-9 in LINKS of TimeZoneCatalog.pm. The only fix we need is to allow "JST-9" in _could_be_valid_time_zone() as patched by Kenichi. I guess the regexp can be tighten up like, return $_[0] =~ m,^[\w/]+(?:\+\-\d)?$, ? 1 : 0; though. ========== diff -ru DateTime-TimeZone-0.46/lib/DateTime/TimeZone/Local.pm DateTime-TimeZone-0.46-patched/lib/DateTime/TimeZone/Local.pm --- DateTime-TimeZone-0.46/lib/DateTime/TimeZone/Local.pm 2006-05-09 06:42:05.000000000 +0900 +++ DateTime-TimeZone-0.46-patched/lib/DateTime/TimeZone/Local.pm 2006-07-30 03:12:25.186375000 +0900 @@ -228,7 +228,10 @@ return 0 unless defined $_[0]; return 0 if $_[0] eq 'local'; - return $_[0] =~ m,^[\w/]+$, ? 1 : 0; + return 1 if $_[0] =~ m,^[\w/]+$,; + return 1 if $_[0] =~ m,^\w+\s*[\+\-]\s*\d+$,; + + return 0; } Thanks! -- Tatsuhiko Miyagawa