タイムゾーンというと、+0900 のように符号と四桁の数字か、UTC PST JST のような三文字の英字*1、Asia/Tokyo のようなzoneinfoのファイル名とかで表すが、米軍規格の一文字英字もある。UTC を一文字で Z で表すのはここから来ている。ちなみに JST は V だ。
現在でもちゃんとgnu-dateにその機能が残っている。
export TZ=UTC for T in A B C D E F G H I J K L M N O P Q R S T U V W X Y Z JST PST do date "+$T %Y-%m-%d %H:%M" -d "2010-01-01 00:00:00 $T" done
実行結果、つまり「各タイムゾーンの午前0時がUTCで何時になるか」は、
A 2010-01-01 01:00 B 2010-01-01 02:00 C 2010-01-01 03:00 D 2010-01-01 04:00 E 2010-01-01 05:00 F 2010-01-01 06:00 G 2010-01-01 07:00 H 2010-01-01 08:00 I 2010-01-01 09:00 date: invalid date `2010-01-01 00:00:00 J' K 2010-01-01 10:00 L 2010-01-01 11:00 M 2010-01-01 12:00 N 2009-12-31 23:00 O 2009-12-31 22:00 P 2009-12-31 21:00 Q 2009-12-31 20:00 R 2009-12-31 19:00 S 2009-12-31 18:00 T 2009-12-31 17:00 U 2009-12-31 16:00 V 2009-12-31 15:00 W 2009-12-31 14:00 X 2009-12-31 13:00 Y 2009-12-31 12:00 Z 2010-01-01 00:00 JST 2009-12-31 15:00 PST 2010-01-01 08:00
面白いのは、どちらか方向に一周するのでなく、西半球を半周してから東半球の半周に戻ることと、飛ばしているのがIとかOじゃなくてJなこと。