いろいろ検索したつもりでしたが、実は :18:59 timezone と検索することで先人の方々のサイトがヒットし、Google先生がいれば誰でも天才ということで表題の件は簡単に速攻で解決できたことがわかりました。しかしせっかく書いたので恥ずかしながら公開しておきます…
(追記)
2020年オリンピック時間の検討だそうです。(干からびたチーズとかイットとかなんかあったなとアルファ波を出しながらなま暖かい目で見ていた多くの人の予想通り、検討の初期段階でさっそく実施されない方向に向かっているようです。欧州では逆にサマータイムなんかやめちまえという流れのようで。)
もともとUNIX epoch timeとかtzdbとか気にしないでローカル時刻で猪突猛進の場合でも、DBのTIMESTAMPにはUNIX epoch timeで入ってる場合もあるでしょうし、UNIX epoch timeでクライアントとサーバがやり取りしている場合だとtzdbのサーバとクライアントのどちらか一方だけ更新、とかではまります。2019年にテストしてとかいうことだとzicが活躍するでしょうか。妄想するとこんな感じ?現実的にはもっと幅が広くなるのでしょうが。
1 2 3 4 5 6 7 8 9 10 11 |
# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule Japan 1948 only - May Sat>=1 24:00 1:00 D Rule Japan 1948 1951 - Sep Sun>=9 0:00 0 S Rule Japan 1949 only - Apr Sat>=1 24:00 1:00 D Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D # test period (this is personal delusion. not defined by a government.) Rule Japan 2019 2019 - Jul 25 24:00 2:00 D #O Rule Japan 2019 2019 - Aug 11 24:00 0 S # olympic period (this is personal delusion. not defined by a government.) Rule Japan 2020 2020 - Jul 23 24:00 2:00 D #O Rule Japan 2020 2020 - Aug 9 24:00 0 S |
基本はUNIX Epoch timeはある時刻に全世界で同じ値で、tzdbを用いてローカル時間と相互に変換できるということです。そんでもってUTCは人間の生活用の時刻の元ではあるけどローカル時刻ではないのでサマータイムは無く、毎日きっちり86400秒という決まりなので、UNIX Epoch timeはうるう秒がいつ入るか、入ったかを知らなければいけないということになります。
リテラルで9時間足したり引いたりしていると、今度はあるタイミングのときだけ11時間足したり引いたりとかハチャメチャな条件分岐が書かれていろいろ楽しいことが起きそうです。他にもUNIX Epoch timeに86400秒を足すと、翌日の同じローカル時間になると仮定しちゃってる場合とかも問題です。Pythonだと標準ライブラリではAsia/Tokyoと書けなくてリテラルで9、で涙目とかでしょうか。
まともな電波時計はDSTフラグとオフセットも受け取れるでしょうし、送る側もちゃんときっとそれらを送出するでしょうからほっといても良いのでしょうが、生活でのローカル時間が必要だけどtzbd持ってない、持っていたとしても更新できないIoT機器とか、何らかの時刻ソースから時刻を設定している機器で時刻ソースがDSTをどう扱うのか決まってない場合とか。家庭内だとECHONETとかでつながっている場合いろいろ起きそうです。スマートメーターが送ってくる時刻とかお風呂の沸く時刻のDSTの扱いとかとか。HDレコーダは国際的なメーカーでも、放送信号やら番組表やら結構ローカル度高いので、特にDSTに入るときと出るときとか。見たかったオリンピック競技が撮れてないじゃん!とかならないようにファームウェアの更新があるかもしれません。Alexa, ちゃんと朝6時に起こしてね。
逆に孤立している学校の巨大な時計とか、Wi-SUNでもWi-Fiでもつながっていないお風呂やエアコンのリモコンとかシャッターとかは自力で調整する以外ないのでシンプルです。あーつながってなくてよかった?
いくらでも出てきますね。全国同一の標準時間の国なので、実際にやることになったらいろいろ起きまくってよい啓蒙()になりそうです。
結論だけ知りたい方向けに、(09:)18:59(Pythonでは仕様で分未満のオフセットが扱えずにpytzでは09:19:00相当になるそうです)は直接的には時間関数が使用するtzfile(zicにより生成される)のAsia/Tokyoにそう書かれています。zicの入力となるtz databaseの大元はSources for Time Zone and Daylight Saving Time DataのFTP distributionTime Zone Databaseよりたどれます(訴訟を機に管轄が変わりました)。
そしてこのAsia/TokyoはSouth Ryukyu Ilands時間問題に端を発して多くの方々の尽力によって出来上がったもののようです。とてもすばらしいですね。平成8年の理科年表と書かれているので、(旧)日本測地系の値なのでは、とか考え始めたら長くなりそうなのでそれは別エントリにて。Asia/TokyoとJST-09の違いを理解していて、JDT,DST(daylight saving timeいわゆるサマータイム)やらLMT(local mean time)やらを気にしたくない、+09:18:59じゃなくて常に+09:00:00であって欲しい方(多くの場合移植性が悪くなるでしょうから一概に良いこととは思えませんが(例えば万が一実際にオリンピック時間が実施される場合はtzdbを更新してもDSTが有効にならない))は、
- 標準ライブラリが使用されている場合
- POSIXシステムではTZ環境変数でコントロールできます。
1TZ='JST-9'; export TZ - PostgreSQL
-
1SET SESSION TIMEZONE TO 'JST-9';
- その他独自にtimzoneを指定できるアプリケーション…
- …
が答えです。
さて、前置きが長くなりましたが何のことを言ってるのでしょうか。
PostgreSQLで以下のSQLを実行してみます。
1 2 3 4 5 6 7 8 9 10 |
DROP TABLE IF EXISTS hoge; CREATE TABLE hoge (id SERIAL, tstz TIMESTAMP WITH TIME ZONE); SET TIMEZONE TO 'Asia/Tokyo'; -- (SET TIMEZONE TO 'Japan'でも同じ) INSERT INTO hoge (tstz)VALUES('1887-12-31 23:59:59'); INSERT INTO hoge (tstz)VALUES('1887-12-31 23:59:59+09:00'); INSERT INTO hoge (tstz)VALUES('1888-01-01 00:00:00+09:00'); SELECT EXTRACT(EPOCH FROM tstz),tstz FROM HOGE ORDER BY id; |
結果は
1 2 3 4 5 6 |
date_part | tstz -------------+------------------------------ -2587713540 | 1887-12-31 23:59:59+09:18:59 -2587712401 | 1888-01-01 00:18:58+09:18:59 -2587712400 | 1888-01-01 00:00:00+09 (3 rows) |
となり、初期化忘れか、と思いながらも何度やっても+09:18:59で安定してます。あとから考えると、普通の使い方ではオフセットだけの表示で、’LMT’のようなゾーン名が出てこないSQLならではのはまり所なのかもしれません。面白いのでデバッガで追います。PostgreSQLがOSに依存しないように自ら時間関数pg_xxx()を持っているようです。pg_localtime()で出来上がっています。その際に使用されるtimezoneは指定のファイルがあればpg_tzset()でtzfileをロード(tzload())してできています。というわけでソースアーカイブからzicに食わせる元ファイルを眺めると18:59を発見できます。環境変数TZに../../../../../../../etc/passwdなんてセットしても大丈夫ですね、などと関係のないことも確認してたりしているところで、別にPostgreSQL付属ではなくてシステム(FreeBSD)のtzfile使っているものでも同じ結果であることに気づいたので、元ファイルを見ます。ほぼ同じファイル、なるほど、ではPostgreSQL追うまでもないじゃん、というかPostgreSQLのファイル見たときに、PostgreSQL専用でなくて大元のファイルであることに気づけよという感じです。amd64なFreeBSDにて、上記の値を利用して、
1 |
env TZ='Asia/Tokyo' date -r -2587712401; env TZ='Asia/Tokyo' date -r -2587712400 |
してみると結果は
1 2 |
Sun Jan 1 00:18:58 LMT 1888 Sun Jan 1 00:00:00 JST 1888 |
はい18:58LMT頂きました。00:18:59で繰り上がって00:00:00になっています。引き続き上記ファイル更新に従ってtzupdaterが出るJRE行ってみます。
1 2 3 4 5 6 |
DateFormat df = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS Z zzzz"); TimeZone tz = TimeZone.getTimeZone("Asia/Tokyo"); df.setTimeZone(tz); System.out.println(df.format(new Date(-2587712400001L))); System.out.println(df.format(new Date(-2587712400000L))); |
結果は
1 2 |
1887/12/31 23:59:59.999 +0900 日本標準時 1888/01/01 00:00:00.000 +0900 日本標準時 |
残念。しかし引き続き
1 2 3 4 5 6 |
Calendar cal = Calendar.getInstance(tz); cal.set(1948, Calendar.MAY, 31, 0, 0, 0); cal.set(Calendar.MILLISECOND, 0); System.out.println(df.format(cal.getTime())); df.setTimeZone(TimeZone.getTimeZone("GMT+09:00")); System.out.println(df.format(cal.getTime())); |
した結果は
1 2 |
1948/05/31 00:00:00.000 +1000 日本夏時間 1948/05/30 23:00:00.000 +0900 GMT+09:00 |
なので、LMTは使用しないで通常のオフセットにしたタイムゾーンになっているようです。おそらくこれが身勝手にも暗黙のうちに期待していたもののような感じでしょうか。
Javaに関連してJDBCではTIMESTAMP WITH TIME ZONE型をサーバから ‘1887-12-31 23:59:59.999999+09:18:59’ という書式で受け取っても、java.sql.Timestamp型はepoch(1970/01/01 00:00:00+00 = 1970/01/01 09:00:00+09)からのオフセットしか保持していないのでgetTimezone()では+09:18:59は気にする必要はない、というよりも文字列から自力でタイムゾーンを抜くようなことをしないと気にできません。挿入時もsetTimestamp()ではタイムゾーンの指定はできず、セッションタイムゾーンが使用されます。
最後に、ftp://ftp.iana.org/tz/releases/ (旧ftp://elsie.nci.nih.gov/pub/) のtzdata2010o.tar.gz版より各国のLMTをUNTIL順に並べてみます。アムステルダム早っ!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 |
Zone Europe/Amsterdam +00:19:32 (0:19:32) - LMT 1835 Zone Atlantic/Reykjavik -01:27:24 (-1:27:24) - LMT 1837 Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 Zone Pacific/Guam -14:21:00 - LMT 1844 Dec 31 Zone Pacific/Saipan -14:17:00 - LMT 1844 Dec 31 Zone Europe/London -00:01:15 (-0:01:15) - LMT 1847 Dec 1 0:00s Zone Europe/Zurich +00:34:08 (0:34:08) - LMT 1848 Sep 12 Zone Europe/Prague +00:57:44 (0:57:44) - LMT 1850 Zone Europe/Rome +00:49:56 (0:49:56) - LMT 1866 Sep 22 Zone America/Adak +12:13:21 (12:13:21) - LMT 1867 Oct 18 Zone America/Anchorage +14:00:24 (14:00:24) - LMT 1867 Oct 18 Zone America/Juneau +15:02:19 (15:02:19) - LMT 1867 Oct 18 Zone America/Nome +12:58:21 (12:58:21) - LMT 1867 Oct 18 Zone America/Yakutat +14:41:05 (14:41:05) - LMT 1867 Oct 18 Zone Asia/Jakarta +07:07:12 (7:07:12) - LMT 1867 Aug 10 Zone Pacific/Auckland +11:39:04 (11:39:04) - LMT 1868 Nov 2 Zone Africa/Addis_Ababa +02:34:48 (2:34:48) - LMT 1870 Zone Africa/Asmara +02:35:32 (2:35:32) - LMT 1870 Zone Europe/Helsinki +01:39:52 (1:39:52) - LMT 1878 May 31 Zone Europe/Stockholm +01:12:12 (1:12:12) - LMT 1879 Jan 1 Zone Pacific/Apia +12:33:04 (12:33:04) - LMT 1879 Jul 5 Zone Pacific/Pago_Pago +12:37:12 (12:37:12) - LMT 1879 Jul 5 Zone Asia/Bangkok +06:42:04 (6:42:04) - LMT 1880 Zone Asia/Beirut +02:22:00 (2:22:00) - LMT 1880 Zone Asia/Colombo +05:19:24 (5:19:24) - LMT 1880 Zone Asia/Irkutsk +06:57:20 (6:57:20) - LMT 1880 Zone Asia/Jerusalem +02:20:56 (2:20:56) - LMT 1880 Zone Asia/Kolkata +05:53:28 (5:53:28) - LMT 1880 # Kolkata Zone Asia/Rangoon +06:24:40 (6:24:40) - LMT 1880 # or Yangon Zone Asia/Tbilisi +02:59:16 (2:59:16) - LMT 1880 Zone Europe/Brussels +00:17:30 (0:17:30) - LMT 1880 Zone Europe/Chisinau +01:55:20 (1:55:20) - LMT 1880 Zone Europe/Dublin -00:25:00 (-0:25:00) - LMT 1880 Aug 2 Zone Europe/Gibraltar -00:21:24 (-0:21:24) - LMT 1880 Aug 2 0:00s Zone Europe/Istanbul +01:55:52 (1:55:52) - LMT 1880 Zone Europe/Kiev +02:02:04 (2:02:04) - LMT 1880 Zone Europe/Minsk +01:50:16 (1:50:16) - LMT 1880 Zone Europe/Moscow +02:30:20 (2:30:20) - LMT 1880 Zone Europe/Riga +01:36:24 (1:36:24) - LMT 1880 Zone Europe/Simferopol +02:16:24 (2:16:24) - LMT 1880 Zone Europe/Sofia +01:33:16 (1:33:16) - LMT 1880 Zone Europe/Tallinn +01:39:00 (1:39:00) - LMT 1880 Zone Europe/Vilnius +01:41:16 (1:41:16) - LMT 1880 Zone Europe/Warsaw +01:24:00 (1:24:00) - LMT 1880 Zone Europe/Zaporozhye +02:20:40 (2:20:40) - LMT 1880 Zone Indian/Maldives +04:54:00 (4:54:00) - LMT 1880 # Male Zone Pacific/Port_Moresby +09:48:40 (9:48:40) - LMT 1880 Zone Africa/Tunis +00:40:44 (0:40:44) - LMT 1881 May 12 Zone Africa/Freetown -00:53:00 (-0:53:00) - LMT 1882 Zone Africa/Monrovia -00:43:08 (-0:43:08) - LMT 1882 Zone America/Boise -07:44:49 (-7:44:49) - LMT 1883 Nov 18 12:15:11 Zone America/Chicago -05:50:36 (-5:50:36) - LMT 1883 Nov 18 12:09:24 Zone America/Denver -06:59:56 (-6:59:56) - LMT 1883 Nov 18 12:00:04 Zone America/Indiana/Indianapolis -05:44:38 (-5:44:38) - LMT 1883 Nov 18 12:15:22 Zone America/Indiana/Knox -05:46:30 (-5:46:30) - LMT 1883 Nov 18 12:13:30 Zone America/Indiana/Marengo -05:45:23 (-5:45:23) - LMT 1883 Nov 18 12:14:37 Zone America/Indiana/Petersburg -05:49:07 (-5:49:07) - LMT 1883 Nov 18 12:10:53 Zone America/Indiana/Tell_City -05:47:03 (-5:47:03) - LMT 1883 Nov 18 12:12:57 Zone America/Indiana/Vevay -05:40:16 (-5:40:16) - LMT 1883 Nov 18 12:19:44 Zone America/Indiana/Vincennes -05:50:07 (-5:50:07) - LMT 1883 Nov 18 12:09:53 Zone America/Indiana/Winamac -05:46:25 (-5:46:25) - LMT 1883 Nov 18 12:13:35 Zone America/Kentucky/Louisville -05:43:02 (-5:43:02) - LMT 1883 Nov 18 12:16:58 Zone America/Kentucky/Monticello -05:39:24 (-5:39:24) - LMT 1883 Nov 18 12:20:36 Zone America/Los_Angeles -07:52:58 (-7:52:58) - LMT 1883 Nov 18 12:07:02 Zone America/Moncton -04:19:08 (-4:19:08) - LMT 1883 Dec 9 Zone America/New_York -04:56:02 (-4:56:02) - LMT 1883 Nov 18 12:03:58 Zone America/North_Dakota/Center -06:45:12 (-6:45:12) - LMT 1883 Nov 18 12:14:48 Zone America/North_Dakota/New_Salem -06:45:39 (-6:45:39) - LMT 1883 Nov 18 12:14:21 Zone America/Phoenix -07:28:18 (-7:28:18) - LMT 1883 Nov 18 11:31:42 Zone Africa/Sao_Tome +00:26:56 (0:26:56) - LMT 1884 Zone America/Blanc-Sablon -03:48:28 (-3:48:28) - LMT 1884 Zone America/Bogota -04:56:20 (-4:56:20) - LMT 1884 Mar 13 Zone America/Dawson_Creek -08:00:56 (-8:00:56) - LMT 1884 Zone America/Goose_Bay -04:01:40 (-4:01:40) - LMT 1884 # Happy Valley-Goose Bay Zone America/Montreal -04:54:16 (-4:54:16) - LMT 1884 Zone America/St_Johns -03:30:52 (-3:30:52) - LMT 1884 Zone America/Vancouver -08:12:28 (-8:12:28) - LMT 1884 Zone Atlantic/Azores -01:42:40 (-1:42:40) - LMT 1884 # Ponta Delgada Zone Atlantic/Madeira -01:07:36 (-1:07:36) - LMT 1884 # Funchal Zone Europe/Belgrade +01:22:00 (1:22:00) - LMT 1884 Zone Europe/Lisbon -00:36:32 (-0:36:32) - LMT 1884 Zone Africa/Gaborone +01:43:40 (1:43:40) - LMT 1885 Zone America/Menominee -05:50:27 (-5:50:27) - LMT 1885 Sep 18 12:00 Zone America/Winnipeg -06:28:36 (-6:28:36) - LMT 1887 Jul 16 Zone Asia/Tokyo +09:18:59 (9:18:59) - LMT 1887 Dec 31 15:00u Zone Africa/Bujumbura +01:57:28 (1:57:28) - LMT 1890 Zone America/Asuncion -03:50:40 (-3:50:40) - LMT 1890 Zone America/Caracas -04:27:44 (-4:27:44) - LMT 1890 Zone America/Cayman -05:25:32 (-5:25:32) - LMT 1890 # Georgetown Zone America/Costa_Rica -05:36:20 (-5:36:20) - LMT 1890 # San Jose Zone America/Grand_Turk -04:44:32 (-4:44:32) - LMT 1890 Zone America/Guayaquil -05:19:20 (-5:19:20) - LMT 1890 Zone America/Havana -05:29:28 (-5:29:28) - LMT 1890 Zone America/Jamaica -05:07:12 (-5:07:12) - LMT 1890 # Kingston Zone America/La_Paz -04:32:36 (-4:32:36) - LMT 1890 Zone America/Lima -05:08:12 (-5:08:12) - LMT 1890 Zone America/Managua -05:45:08 (-5:45:08) - LMT 1890 Zone America/Martinique -04:04:20 (-4:04:20) - LMT 1890 # Fort-de-France Zone America/Panama -05:18:08 (-5:18:08) - LMT 1890 Zone America/Port-au-Prince -04:49:20 (-4:49:20) - LMT 1890 Zone America/Santiago -04:42:46 (-4:42:46) - LMT 1890 Zone America/Santo_Domingo -04:39:36 (-4:39:36) - LMT 1890 Zone America/St_Lucia -04:04:00 (-4:04:00) - LMT 1890 # Castries Zone America/St_Vincent -04:04:56 (-4:04:56) - LMT 1890 # Kingstown Zone Asia/Baghdad +02:57:40 (2:57:40) - LMT 1890 Zone Asia/Dhaka +06:01:40 (6:01:40) - LMT 1890 Zone Asia/Kabul +04:36:48 (4:36:48) - LMT 1890 Zone Asia/Pyongyang +08:23:00 (8:23:00) - LMT 1890 Zone Asia/Seoul +08:27:52 (8:27:52) - LMT 1890 Zone Atlantic/South_Georgia -02:26:08 (-2:26:08) - LMT 1890 # Grytviken Zone Atlantic/St_Helena -00:22:48 (-0:22:48) - LMT 1890 # Jamestown Zone Atlantic/Stanley -03:51:24 (-3:51:24) - LMT 1890 Zone Europe/Budapest +01:16:20 (1:16:20) - LMT 1890 Oct Zone Europe/Copenhagen +00:50:20 (0:50:20) - LMT 1890 Zone Europe/Uzhgorod +01:29:12 (1:29:12) - LMT 1890 Oct Zone Pacific/Easter -07:17:44 (-7:17:44) - LMT 1890 Zone Africa/Algiers +00:12:12 (0:12:12) - LMT 1891 Mar 15 0:01 Zone Europe/Bucharest +01:44:24 (1:44:24) - LMT 1891 Oct Zone Europe/Monaco +00:29:32 (0:29:32) - LMT 1891 Mar 15 Zone Europe/Paris +00:09:21 (0:09:21) - LMT 1891 Mar 15 0:01 Zone Africa/Johannesburg +01:52:00 (1:52:00) - LMT 1892 Feb 8 Zone Africa/Luanda +00:52:56 (0:52:56) - LMT 1892 Zone Africa/Windhoek +01:08:24 (1:08:24) - LMT 1892 Feb 8 Zone Africa/Lome +00:04:52 (0:04:52) - LMT 1893 Zone Africa/Mogadishu +03:01:28 (3:01:28) - LMT 1893 Nov Zone Europe/Berlin +00:53:28 (0:53:28) - LMT 1893 Apr Zone Europe/Kaliningrad +01:22:00 (1:22:00) - LMT 1893 Apr Zone Europe/Malta +00:58:04 (0:58:04) - LMT 1893 Nov 2 0:00s # Valletta Zone Europe/Vienna +01:05:20 (1:05:20) - LMT 1893 Apr Zone America/Argentina/Buenos_Aires -03:53:48 (-3:53:48) - LMT 1894 Oct 31 Zone America/Argentina/Catamarca -04:23:08 (-4:23:08) - LMT 1894 Oct 31 Zone America/Argentina/Cordoba -04:16:48 (-4:16:48) - LMT 1894 Oct 31 Zone America/Argentina/Jujuy -04:21:12 (-4:21:12) - LMT 1894 Oct 31 Zone America/Argentina/La_Rioja -04:27:24 (-4:27:24) - LMT 1894 Oct 31 Zone America/Argentina/Mendoza -04:35:16 (-4:35:16) - LMT 1894 Oct 31 Zone America/Argentina/Rio_Gallegos -04:36:52 (-4:36:52) - LMT 1894 Oct 31 Zone America/Argentina/Salta -04:21:40 (-4:21:40) - LMT 1894 Oct 31 Zone America/Argentina/San_Juan -04:34:04 (-4:34:04) - LMT 1894 Oct 31 Zone America/Argentina/San_Luis -04:25:24 (-4:25:24) - LMT 1894 Oct 31 Zone America/Argentina/Tucuman -04:20:52 (-4:20:52) - LMT 1894 Oct 31 Zone America/Argentina/Ushuaia -04:33:12 (-4:33:12) - LMT 1894 Oct 31 Zone Europe/Vaduz +00:38:04 (0:38:04) - LMT 1894 Jun Zone America/Atikokan -06:06:28 (-6:06:28) - LMT 1895 Zone America/Nipigon -05:53:04 (-5:53:04) - LMT 1895 Zone America/Rainy_River -06:18:16 (-6:18:16) - LMT 1895 Zone America/Thunder_Bay -05:57:00 (-5:57:00) - LMT 1895 Zone America/Toronto -05:17:32 (-5:17:32) - LMT 1895 Zone Australia/Adelaide +09:14:20 (9:14:20) - LMT 1895 Feb Zone Australia/Brisbane +10:12:08 (10:12:08) - LMT 1895 Zone Australia/Broken_Hill +09:25:48 (9:25:48) - LMT 1895 Feb Zone Australia/Currie +09:35:28 (9:35:28) - LMT 1895 Sep Zone Australia/Darwin +08:43:20 (8:43:20) - LMT 1895 Feb Zone Australia/Eucla +08:35:28 (8:35:28) - LMT 1895 Dec Zone Australia/Hobart +09:49:16 (9:49:16) - LMT 1895 Sep Zone Australia/Lindeman +09:55:56 (9:55:56) - LMT 1895 Zone Australia/Lord_Howe +10:36:20 (10:36:20) - LMT 1895 Feb Zone Australia/Melbourne +09:39:52 (9:39:52) - LMT 1895 Feb Zone Australia/Perth +07:43:24 (7:43:24) - LMT 1895 Dec Zone Australia/Sydney +10:04:52 (10:04:52) - LMT 1895 Feb Zone Europe/Athens +01:34:52 (1:34:52) - LMT 1895 Sep 14 Zone Europe/Oslo +00:43:00 (0:43:00) - LMT 1895 Jan 1 Zone Indian/Christmas +07:02:52 (7:02:52) - LMT 1895 Feb Zone Asia/Taipei +08:06:00 (8:06:00) - LMT 1896 # or Taibei or T'ai-pei Zone Africa/Kinshasa +01:01:12 (1:01:12) - LMT 1897 Nov 9 Zone Africa/Lubumbashi +01:49:52 (1:49:52) - LMT 1897 Nov 9 Zone America/Montevideo -03:44:44 (-3:44:44) - LMT 1898 Jun 28 Zone America/Puerto_Rico -04:24:25 (-4:24:25) - LMT 1899 Mar 28 12:00 # San Juan Zone Africa/Cairo +02:05:00 (2:05:00) - LMT 1900 Oct Zone America/Dawson -09:17:40 (-9:17:40) - LMT 1900 Aug 20 Zone America/Whitehorse -09:00:12 (-9:00:12) - LMT 1900 Aug 20 Zone Asia/Gaza +02:17:52 (2:17:52) - LMT 1900 Oct Zone Indian/Cocos +06:27:40 (6:27:40) - LMT 1900 Zone Pacific/Honolulu -10:31:26 - LMT 1900 Jan 1 12:00 Zone Africa/Ceuta -00:21:16 (-0:21:16) - LMT 1901 Zone Asia/Kuala_Lumpur +06:46:46 (6:46:46) - LMT 1901 Jan 1 Zone Asia/Singapore +06:55:25 (6:55:25) - LMT 1901 Jan 1 Zone Europe/Andorra +00:06:04 (0:06:04) - LMT 1901 Zone Europe/Madrid -00:14:44 (-0:14:44) - LMT 1901 Jan 1 0:00s Zone Pacific/Chuuk +10:07:08 (10:07:08) - LMT 1901 Zone Pacific/Enderbury -11:24:20 - LMT 1901 Zone Pacific/Fakaofo -11:24:56 - LMT 1901 Zone Pacific/Funafuti +11:56:52 (11:56:52) - LMT 1901 Zone Pacific/Kiritimati -10:29:20 - LMT 1901 Zone Pacific/Kosrae +10:51:56 (10:51:56) - LMT 1901 Zone Pacific/Kwajalein +11:09:20 (11:09:20) - LMT 1901 Zone Pacific/Majuro +11:24:48 (11:24:48) - LMT 1901 Zone Pacific/Midway -11:49:28 - LMT 1901 Zone Pacific/Niue -11:19:40 - LMT 1901 # Alofi Zone Pacific/Norfolk +11:11:52 (11:11:52) - LMT 1901 # Kingston Zone Pacific/Palau +08:57:56 (8:57:56) - LMT 1901 # Koror Zone Pacific/Pitcairn -08:40:20 (-8:40:20) - LMT 1901 # Adamstown Zone Pacific/Pohnpei +10:32:52 (10:32:52) - LMT 1901 # Kolonia Zone Pacific/Rarotonga -10:39:04 - LMT 1901 # Avarua Zone Pacific/Tarawa +11:32:04 (11:32:04) - LMT 1901 # Bairiki Zone Pacific/Tongatapu +12:19:20 (12:19:20) - LMT 1901 Zone Pacific/Wake +11:06:28 (11:06:28) - LMT 1901 Zone Pacific/Wallis +12:15:20 (12:15:20) - LMT 1901 Zone America/Glace_Bay -03:59:48 (-3:59:48) - LMT 1902 Jun 15 Zone America/Halifax -04:14:24 (-4:14:24) - LMT 1902 Jun 15 Zone Africa/Blantyre +02:20:00 (2:20:00) - LMT 1903 Mar Zone Africa/Harare +02:04:12 (2:04:12) - LMT 1903 Mar Zone Africa/Lusaka +01:53:08 (1:53:08) - LMT 1903 Mar Zone Africa/Maputo +02:10:20 (2:10:20) - LMT 1903 Mar Zone Africa/Maseru +01:50:00 (1:50:00) - LMT 1903 Mar Zone Africa/Mbabane +02:04:24 (2:04:24) - LMT 1903 Mar Zone Asia/Hong_Kong +07:36:36 (7:36:36) - LMT 1904 Oct 30 Zone Europe/Luxembourg +00:24:36 (0:24:36) - LMT 1904 Jun Zone America/Detroit -05:32:11 (-5:32:11) - LMT 1905 Zone America/Regina -06:58:36 (-6:58:36) - LMT 1905 Sep Zone America/Swift_Current -07:11:20 (-7:11:20) - LMT 1905 Sep Zone Asia/Choibalsan +07:38:00 (7:38:00) - LMT 1905 Aug Zone Asia/Hovd +06:06:36 (6:06:36) - LMT 1905 Aug Zone Asia/Sakhalin +09:30:48 (9:30:48) - LMT 1905 Aug 23 Zone Asia/Ulaanbaatar +07:07:32 (7:07:32) - LMT 1905 Aug Zone America/Edmonton -07:33:52 (-7:33:52) - LMT 1906 Sep Zone Asia/Ho_Chi_Minh +07:06:40 (7:06:40) - LMT 1906 Jun 9 Zone Asia/Phnom_Penh +06:59:40 (6:59:40) - LMT 1906 Jun 9 Zone Asia/Vientiane +06:50:24 (6:50:24) - LMT 1906 Jun 9 # or Viangchan Zone Indian/Mahe +03:41:48 (3:41:48) - LMT 1906 Jun # Victoria Zone Asia/Karachi +04:28:12 (4:28:12) - LMT 1907 Zone Atlantic/Cape_Verde -01:34:04 (-1:34:04) - LMT 1907 # Praia Zone Indian/Chagos +04:49:40 (4:49:40) - LMT 1907 Zone Indian/Mauritius +03:50:00 (3:50:00) - LMT 1907 # Port Louis Zone Asia/Pontianak +07:17:20 (7:17:20) - LMT 1908 May Zone Atlantic/Faroe -00:27:04 (-0:27:04) - LMT 1908 Jan 11 # Torshavn Zone Africa/Bissau -01:02:20 (-1:02:20) - LMT 1911 May 26 Zone Africa/Djibouti +02:52:36 (2:52:36) - LMT 1911 Jul Zone America/Cayenne -03:29:20 (-3:29:20) - LMT 1911 Jul Zone America/Dominica -04:05:36 (-4:05:36) - LMT 1911 Jul 1 0:01 # Roseau Zone America/Grenada -04:07:00 (-4:07:00) - LMT 1911 Jul # St George's Zone America/Guadeloupe -04:06:08 (-4:06:08) - LMT 1911 Jun 8 # Pointe a Pitre Zone America/Miquelon -03:44:40 (-3:44:40) - LMT 1911 May 15 # St Pierre Zone America/Montserrat -04:08:52 (-4:08:52) - LMT 1911 Jul 1 0:01 # Cork Hill Zone America/Paramaribo -03:40:40 (-3:40:40) - LMT 1911 Zone America/St_Thomas -04:19:44 (-4:19:44) - LMT 1911 Jul # Charlotte Amalie Zone America/Tortola -04:18:28 (-4:18:28) - LMT 1911 Jul # Road Town Zone Indian/Antananarivo +03:10:04 (3:10:04) - LMT 1911 Jul Zone Indian/Comoro +02:53:04 (2:53:04) - LMT 1911 Jul # Moroni, Gran Comoro Zone Indian/Mayotte +03:00:56 (3:00:56) - LMT 1911 Jul # Mamoutzou Zone Indian/Reunion +03:41:52 (3:41:52) - LMT 1911 Jun # Saint-Denis Zone Africa/Abidjan -00:16:08 (-0:16:08) - LMT 1912 Zone Africa/Bamako -00:32:00 (-0:32:00) - LMT 1912 Zone Africa/Bangui +01:14:20 (1:14:20) - LMT 1912 Zone Africa/Banjul -01:06:36 (-1:06:36) - LMT 1912 Zone Africa/Brazzaville +01:01:08 (1:01:08) - LMT 1912 Zone Africa/Conakry -00:54:52 (-0:54:52) - LMT 1912 Zone Africa/Dakar -01:09:44 (-1:09:44) - LMT 1912 Zone Africa/Douala +00:38:48 (0:38:48) - LMT 1912 Zone Africa/Libreville +00:37:48 (0:37:48) - LMT 1912 Zone Africa/Malabo +00:35:08 (0:35:08) - LMT 1912 Zone Africa/Ndjamena +01:00:12 (1:00:12) - LMT 1912 Zone Africa/Niamey +00:08:28 (0:08:28) - LMT 1912 Zone Africa/Nouakchott -01:03:48 (-1:03:48) - LMT 1912 Zone Africa/Ouagadougou -00:06:04 (-0:06:04) - LMT 1912 Zone Africa/Porto-Novo +00:10:28 (0:10:28) - LMT 1912 Zone America/Anguilla -04:12:16 (-4:12:16) - LMT 1912 Mar 2 Zone America/Antigua -04:07:12 (-4:07:12) - LMT 1912 Mar 2 Zone America/Aruba -04:40:24 (-4:40:24) - LMT 1912 Feb 12 # Oranjestad Zone America/Belize -05:52:48 (-5:52:48) - LMT 1912 Apr Zone America/Curacao -04:35:44 (-4:35:44) - LMT 1912 Feb 12 # Willemstad Zone America/Nassau -05:09:24 (-5:09:24) - LMT 1912 Mar 2 Zone America/Port_of_Spain -04:06:04 (-4:06:04) - LMT 1912 Mar 2 Zone America/St_Kitts -04:10:52 (-4:10:52) - LMT 1912 Mar 2 # Basseterre Zone Asia/Dili +08:22:20 (8:22:20) - LMT 1912 Zone Asia/Macau +07:34:20 (7:34:20) - LMT 1912 Zone Pacific/Efate +11:13:16 (11:13:16) - LMT 1912 Jan 13 # Vila Zone Pacific/Gambier -08:59:48 (-8:59:48) - LMT 1912 Oct # Rikitea Zone Pacific/Guadalcanal +10:39:48 (10:39:48) - LMT 1912 Oct # Honiara Zone Pacific/Marquesas -09:18:00 (-9:18:00) - LMT 1912 Oct Zone Pacific/Noumea +11:05:48 (11:05:48) - LMT 1912 Jan 13 Zone Pacific/Tahiti -09:58:16 (-9:58:16) - LMT 1912 Oct # Papeete Zone Africa/Casablanca -00:30:20 (-0:30:20) - LMT 1913 Oct 26 Zone America/Araguaina -03:12:48 (-3:12:48) - LMT 1914 Zone America/Bahia -02:34:04 (-2:34:04) - LMT 1914 Zone America/Belem -03:13:56 (-3:13:56) - LMT 1914 Zone America/Boa_Vista -04:02:40 (-4:02:40) - LMT 1914 Zone America/Campo_Grande -03:38:28 (-3:38:28) - LMT 1914 Zone America/Cuiaba -03:44:20 (-3:44:20) - LMT 1914 Zone America/Eirunepe -04:39:28 (-4:39:28) - LMT 1914 Zone America/Fortaleza -02:34:00 (-2:34:00) - LMT 1914 Zone America/Maceio -02:22:52 (-2:22:52) - LMT 1914 Zone America/Manaus -04:00:04 (-4:00:04) - LMT 1914 Zone America/Noronha -02:09:40 (-2:09:40) - LMT 1914 Zone America/Porto_Velho -04:15:36 (-4:15:36) - LMT 1914 Zone America/Recife -02:19:36 (-2:19:36) - LMT 1914 Zone America/Rio_Branco -04:31:12 (-4:31:12) - LMT 1914 Zone America/Santarem -03:38:48 (-3:38:48) - LMT 1914 Zone America/Sao_Paulo -03:06:28 (-3:06:28) - LMT 1914 Zone Europe/Tirane +01:19:20 (1:19:20) - LMT 1914 Zone America/Guyana -03:52:40 (-3:52:40) - LMT 1915 Mar # Georgetown Zone Pacific/Fiji +11:53:40 (11:53:40) - LMT 1915 Oct 26 # Suva Zone America/Danmarkshavn -01:14:40 (-1:14:40) - LMT 1916 Jul 28 Zone America/Godthab -03:26:56 (-3:26:56) - LMT 1916 Jul 28 # Nuuk Zone America/Scoresbysund -01:27:52 (-1:27:52) - LMT 1916 Jul 28 # Ittoqqortoormiit Zone America/Thule -04:35:08 (-4:35:08) - LMT 1916 Jul 28 # Pituffik air base Zone Asia/Tehran +03:25:44 (3:25:44) - LMT 1916 Zone Africa/Accra -00:00:52 (-0:00:52) - LMT 1918 Zone America/Guatemala -06:02:04 (-6:02:04) - LMT 1918 Oct 5 Zone Africa/Lagos +00:13:36 (0:13:36) - LMT 1919 Sep Zone Asia/Novosibirsk +05:31:40 (5:31:40) - LMT 1919 Dec 14 6:00 Zone Asia/Omsk +04:53:36 (4:53:36) - LMT 1919 Nov 14 Zone Asia/Yakutsk +08:38:40 (8:38:40) - LMT 1919 Dec 15 Zone Asia/Yekaterinburg +04:02:24 (4:02:24) - LMT 1919 Jul 15 4:00 Zone Europe/Samara +03:20:36 (3:20:36) - LMT 1919 Jul 1 2:00 Zone Africa/Tripoli +00:52:44 (0:52:44) - LMT 1920 Zone Asia/Bahrain +03:22:20 (3:22:20) - LMT 1920 # Al Manamah Zone Asia/Damascus +02:25:12 (2:25:12) - LMT 1920 # Dimashq Zone Asia/Dubai +03:41:12 (3:41:12) - LMT 1920 Zone Asia/Kathmandu +05:41:16 (5:41:16) - LMT 1920 Zone Asia/Krasnoyarsk +06:11:20 (6:11:20) - LMT 1920 Jan 6 Zone Asia/Makassar +07:57:36 (7:57:36) - LMT 1920 Zone Asia/Muscat +03:54:20 (3:54:20) - LMT 1920 Zone Asia/Qatar +03:26:08 (3:26:08) - LMT 1920 # Al Dawhah / Doha Zone Europe/Volgograd +02:57:40 (2:57:40) - LMT 1920 Jan 3 Zone America/Bahia_Banderas -07:01:00 (-7:01:00) - LMT 1921 Dec 31 23:59:00 Zone America/Chihuahua -07:04:20 (-7:04:20) - LMT 1921 Dec 31 23:55:40 Zone America/El_Salvador -05:56:48 (-5:56:48) - LMT 1921 # San Salvador Zone America/Hermosillo -07:23:52 (-7:23:52) - LMT 1921 Dec 31 23:36:08 Zone America/Matamoros -06:40:00 (-6:40:00) - LMT 1921 Dec 31 23:20:00 Zone America/Mazatlan -07:05:40 (-7:05:40) - LMT 1921 Dec 31 23:54:20 Zone America/Monterrey -06:41:16 (-6:41:16) - LMT 1921 Dec 31 23:18:44 Zone America/Tegucigalpa -05:48:52 (-5:48:52) - LMT 1921 Apr Zone Asia/Nicosia +02:13:28 (2:13:28) - LMT 1921 Nov 14 Zone Pacific/Nauru +11:07:40 (11:07:40) - LMT 1921 Jan 15 # Uaobe Zone America/Cancun -05:47:04 (-5:47:04) - LMT 1922 Jan 1 0:12:56 Zone America/Merida -05:58:28 (-5:58:28) - LMT 1922 Jan 1 0:01:32 Zone America/Mexico_City -06:36:36 (-6:36:36) - LMT 1922 Jan 1 0:23:24 Zone America/Ojinaga -06:57:40 (-6:57:40) - LMT 1922 Jan 1 0:02:20 Zone America/Santa_Isabel -07:39:28 (-7:39:28) - LMT 1922 Jan 1 0:20:32 Zone America/Tijuana -07:48:04 (-7:48:04) - LMT 1922 Jan 1 0:11:56 Zone Asia/Kamchatka +10:34:36 (10:34:36) - LMT 1922 Nov 10 Zone Asia/Vladivostok +08:47:44 (8:47:44) - LMT 1922 Nov 15 Zone Atlantic/Canary -01:01:36 (-1:01:36) - LMT 1922 Mar # Las Palmas de Gran C. Zone America/Barbados -03:58:28 (-3:58:28) - LMT 1924 # Bridgetown Zone Asia/Almaty +05:07:48 (5:07:48) - LMT 1924 May 2 # or Alma-Ata Zone Asia/Anadyr +11:49:56 (11:49:56) - LMT 1924 May 2 Zone Asia/Aqtau +03:21:04 (3:21:04) - LMT 1924 May 2 Zone Asia/Aqtobe +03:48:40 (3:48:40) - LMT 1924 May 2 Zone Asia/Ashgabat +03:53:32 (3:53:32) - LMT 1924 May 2 # or Ashkhabad Zone Asia/Baku +03:19:24 (3:19:24) - LMT 1924 May 2 Zone Asia/Bishkek +04:58:24 (4:58:24) - LMT 1924 May 2 Zone Asia/Dushanbe +04:35:12 (4:35:12) - LMT 1924 May 2 Zone Asia/Magadan +10:03:12 (10:03:12) - LMT 1924 May 2 Zone Asia/Oral +03:25:24 (3:25:24) - LMT 1924 May 2 # or Ural'sk Zone Asia/Qyzylorda +04:21:52 (4:21:52) - LMT 1924 May 2 Zone Asia/Samarkand +04:27:12 (4:27:12) - LMT 1924 May 2 Zone Asia/Tashkent +04:37:12 (4:37:12) - LMT 1924 May 2 Zone Asia/Yerevan +02:58:00 (2:58:00) - LMT 1924 May 2 Zone Asia/Brunei +07:39:40 (7:39:40) - LMT 1926 Mar # Bandar Seri Begawan Zone Asia/Kuching +07:21:20 (7:21:20) - LMT 1926 Mar Zone Africa/Kampala +02:09:40 (2:09:40) - LMT 1928 Jul Zone Africa/Nairobi +02:27:16 (2:27:16) - LMT 1928 Jul Zone Asia/Chongqing +07:06:20 (7:06:20) - LMT 1928 # or Chungking Zone Asia/Harbin +08:26:44 (8:26:44) - LMT 1928 # or Haerbin Zone Asia/Kashgar +05:03:56 (5:03:56) - LMT 1928 # or Kashi or Kaxgar Zone Asia/Shanghai +08:05:52 (8:05:52) - LMT 1928 Zone Asia/Urumqi +05:50:20 (5:50:20) - LMT 1928 # or Urumchi Zone Atlantic/Bermuda -04:19:04 (-4:19:04) - LMT 1930 Jan 1 2:00 # Hamilton Zone Africa/Dar_es_Salaam +02:37:08 (2:37:08) - LMT 1931 Zone Africa/Khartoum +02:10:08 (2:10:08) - LMT 1931 Zone Asia/Amman +02:23:44 (2:23:44) - LMT 1931 Zone Pacific/Galapagos -05:58:24 (-5:58:24) - LMT 1931 # Puerto Baquerizo Moreno Zone Asia/Jayapura +09:22:48 (9:22:48) - LMT 1932 Nov Zone Africa/El_Aaiun -00:52:48 (-0:52:48) - LMT 1934 Jan Zone Africa/Kigali +02:00:16 (2:00:16) - LMT 1935 Jun Zone Asia/Thimphu +05:58:36 (5:58:36) - LMT 1947 Aug 15 # or Thimbu Zone Asia/Aden +03:00:48 (3:00:48) - LMT 1950 Zone Asia/Kuwait +03:11:56 (3:11:56) - LMT 1950 Zone Asia/Riyadh +03:06:52 (3:06:52) - LMT 1950 Zone Pacific/Chatham +12:13:48 (12:13:48) - LMT 1957 Jan 1 |