On 06/19/2012 09:00 PM, Boruch Baum wrote: > I was recently showing off ... > and I entered the following command > > $ date && TZ=Asia/Moscow date > Tue Jun 19 15:48:14 EDT 2012 > Tue Jun 19 19:48:14 Asia 2012 > $ TZ=Europe/Moscow date > Tue Jun 19 23:48:59 MSK 2012 > > My initial reaction, besides some embarrassment > at getting the continent wrong (and most of > Russia's timezone are in Asia), is that this > is a bug in the coreutils date command. > However, I've also posted this info to the > iana timezone mailing list, just in case. > > It's a double bug. The date command is printing > out a non-existent timezone, and it's using GMT for > "Asia".
So this is due to TZ needing to support two formats. POSIX and location based. The POSIX format is a zone[+offset] format, though is nonsensical and best avoided as detailed here: http://www.pixelbeat.org/docs/linux_timezones/index.html The location based format is what you were trying to use here, but date fell back to the POSIX format when there was no match. Now on GNU/Linux you could warn if there was no match for TZ with a leading ':' or non number after '/' But I can't see a way to determine if tzset(3) did find a match or not :( cheers, Pádraig.
