"warning: Unrecognized time zone: x" emitted to stderr #2759
jruby 1.7.19 (1.9.3p551) 2015-01-29 20786bd on OpenJDK 64-Bit Server VM 1.6.0_34-b34 +jit [linux-amd64]
MRIs don't complain.
ENV['TZ'] = 'Pure/Invention' Time.at(0) # => t.rb:3 warning: Unrecognized time zone: Pure/Invention
The text was updated successfully, but these errors were encountered:
Ok, so I guess this is a difference in behavior because we don't use the same TZ functions as MRI. Here's part of the manpage for "tzset":
If TZ does not appear in the environment, the best available approximation to local wall clock time, as specified by the tzfile(5)-format file /etc/localtime, is used.
If TZ appears in the environment but its value is a null string, Coordinated Universal Time (UTC) is used (without leap second correction).
If TZ appears in the environment and its value begins with a colon (
If its value does not begin with a colon, it is first used as the pathname of a file (as described above) from which to read the time conversion information. If that file cannot be read, the value is then interpreted as a direct specification (the format is described below) of the time conversion information.
If the TZ environment variable does not specify a tzfile(5)-format file and cannot be interpreted as a direct specification, UTC is used.
There's multiple things in there we don't support, like the special colon form, but the last line is key.
Now, what to fix...
It seems like it would be a nice-to-have feature in Ruby that it will tell you if you have a bogus TZ, doesn't it? Perhaps we should just make this into a verbose-mode warning?
Should be enough to fix #2759.