Here's the first message I sent yesterday.
Show quoted text> I made a little progress. First of all I upgraded to 6.21, so all
> observations/patches etc. are against the current released version.
>
> Second I've found the problem with no timezone found in the my script I've
> mentioned. That was caused by a special (non standard) timezone
setting on the
Show quoted text> server I used, but while I was in that code section in TZ.pm I've
found three
Show quoted text> issues:
With respect to timezones on VMS, I'm interested in getting some
additional methods for determining the local timezone there. In Unix,
there are several files I can look in (if they exist) for the timezone.
Are there any system files in VMS where I can look?
If there are, I'd appreciate it if you could send me a copy of those
files (feel free to remove any sensitive information of course) so I can
include them in Date::Manip.
Show quoted text> + There is a general problem with the gmtoff method. This is not
limited to
Show quoted text> OpenVMS, if gmtoff is actually called it will also fail e.g. on Linux (the
> attached example was created on Linux). The attached gmtoff.patch
demonstrates
Show quoted text> the problem. It disables all other methods for Unix to force the use
of gmtoff
Show quoted text> and adds a few prints to show how the problem happens. Essentially it
seems
Show quoted text> the second _delta_convert('offset',...) does not work ($off is undefined
> afterwards). gmtoff.txt shows example output. I hope this kind of narrows
> down this problem.
Bug! It's squashed. The gmtoff method will work in 6.22. Thanks
Show quoted text> + As far as the OpenVMS specific methods are concerned. The environment
> variable SYS$TIMEZONE_RULE actually contains what it says ;-), i.e. a full
> rule how and when to switch from standard to DST. As such it will
never match
Show quoted text> any of the standard names like MET or CST. But it does contain this
name at
Show quoted text> the start of the string. tz_rule.patch contains a one line patch against
> TZ.pm that adds a substituion doing "the right thing" similar to the
openUNIX
Show quoted text> case. To protect the innocent it is conditional on the OS being VMS.
> SYS$TIMEZONE_DIFFERENTIAL contains the difference between UTC and
local time
Show quoted text> in seconds (e.g. the same value the calculations in gmtoff start off
with).
Show quoted text> Not sure if it would be possible to move the calculation into the foreach
> @zone loop, check for a 4 to 5 digit number (with optional sign) and then
> perform the corrected calculation for gmtoff there?
>
Could you send me the actual value of SYS$TIMEZONE_RULE so that I can
make sure to include it correctly? I want to make sure I'm treating it
correctly.
I'm in the process of fixing the problem with SYS$TIMEZONE_DIFFERENTIAL.
It'll be corrected in 6.22 as well.