羽田からラスベガスまでのフライト情報を見ても時間がよくわからなかったので整理してみた #reinvent

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

re:Invent 2018まで一ヵ月を切りまして、社内でも少しずつ慌ただしさが増してきました。今年もクラスメソッドからは61名という人数を現地に送り込みますが、その中に私も入っています。

さて現地入りということはもちろん渡米するわけですが、今回がはじめての海外となります。もちろんJSTから移動するのもはじめてです。そんなわけでツアー会社からフライト情報が送られてきても、飛行機に何時間乗っているのか、なぜ到着時刻がその時間なのか(特に帰り)がよくわからなかったため整理してみました。

私と同じようにはじめての海外という方の参考になりましたら幸いです。なお記事中に登場するコマンドはMacで確認したものです。

フライト情報

今回は羽田発と成田発の2パターンについて整理しました。

羽田空港発、サンフランシスコ経由、ラスベガス着の往復

  • 11/25(日)羽田(16:25)→サンフランシスコ(08:40)
  • 11/25(日)サンフランシスコ(12:52)→ラスベガス(14:21)
  • 11/30(金)ラスベガス(06:40)→ サンフランシスコ(08:26)
  • 11/30(金)サンフランシスコ(10:35)→ 羽田(14:45(翌日))

成田空港発、バンクーバー経由、ラスベガス着の往復

  • 11/25(日)成田(18:40)→バンクーバー(10:20)
  • 11/25(日)バンクーバー(12:05)→ラスベガス(14:46)
  • 11/30(金)ラスベガス(07:45)→バンクーバー(10:33)
  • 11/30(金)バンクーバー(13:45)→成田(16:40(翌日))

各地域のタイムゾーン

先ほどのフライト情報に出てきた各地域のタイムゾーンを確認します。

日本は問題ないですね。日本標準時であるJSTで協定世界時との差は9時間(UTC+0900)です。

続いてサンフランシスコ、バンクーバー、ラスベガスはすべて太平洋標準時です。コマンドで確認してみます。

$ zdump -v /usr/share/zoneinfo/US/Pacific | grep 2018
/usr/share/zoneinfo/US/Pacific  Sun Mar 11 09:59:59 2018 UTC = Sun Mar 11 01:59:59 2018 PST isdst=0
/usr/share/zoneinfo/US/Pacific  Sun Mar 11 10:00:00 2018 UTC = Sun Mar 11 03:00:00 2018 PDT isdst=1
/usr/share/zoneinfo/US/Pacific  Sun Nov  4 08:59:59 2018 UTC = Sun Nov  4 01:59:59 2018 PDT isdst=1
/usr/share/zoneinfo/US/Pacific  Sun Nov  4 09:00:00 2018 UTC = Sun Nov  4 01:00:00 2018 PST isdst=0

$ zdump -v /usr/share/zoneinfo/Canada/Pacific | grep 2018
/usr/share/zoneinfo/Canada/Pacific  Sun Mar 11 09:59:59 2018 UTC = Sun Mar 11 01:59:59 2018 PST isdst=0
/usr/share/zoneinfo/Canada/Pacific  Sun Mar 11 10:00:00 2018 UTC = Sun Mar 11 03:00:00 2018 PDT isdst=1
/usr/share/zoneinfo/Canada/Pacific  Sun Nov  4 08:59:59 2018 UTC = Sun Nov  4 01:59:59 2018 PDT isdst=1
/usr/share/zoneinfo/Canada/Pacific  Sun Nov  4 09:00:00 2018 UTC = Sun Nov  4 01:00:00 2018 PST isdst=0

太平洋標準時は太平洋夏時間というサマータイムがあるようです(isdst=1がサマータイムのフラグ)。今年は11月4日から冬時間に戻ります。それぞれの協定世界時との差を確認します。

$ local=$(LANG=en date -j -f "%b %d %T %Y" "$(zdump -v /usr/share/zoneinfo/US/Pacific | grep '2018.*isdst=0' | head -1 | awk '{print $10,$11,$12,$13}')" "+%s")
$ utc=$(LANG=en date -j -f "%b %d %T %Y" "$(zdump -v /usr/share/zoneinfo/US/Pacific | grep '2018.*isdst=0' | head -1 | awk '{print $3,$4,$5,$6}')" "+%s")
$ echo $((($local - $utc) / 60 / 60))
-8

$ local=$(LANG=en date -j -f "%b %d %T %Y" "$(zdump -v /usr/share/zoneinfo/US/Pacific | grep '2018.*isdst=1' | head -1 | awk '{print $10,$11,$12,$13}')" "+%s")
$ utc=$(LANG=en date -j -f "%b %d %T %Y" "$(zdump -v /usr/share/zoneinfo/US/Pacific | grep '2018.*isdst=1' | head -1 | awk '{print $3,$4,$5,$6}')" "+%s")
$ echo $((($local - $utc) / 60 / 60))
-7

まとめると次のようになります。

  • JST(日本標準時):UTC+0900
  • PST(太平洋標準時):UTC-0800
  • PDT(太平洋夏時間):UTC-0700

出発は11月25日ですのでJSTとPSTで考えれば良さそうです。また上記から、日本はラスベガスより17時間進んでいるということがわかります。

時差を踏まえてフライト情報を確認

羽田空港発、サンフランシスコ経由、ラスベガス着の往復

  • 11/25(日)羽田(16:25)→サンフランシスコ(08:40)
  • 11/25(日)サンフランシスコ(12:52)→ラスベガス(14:21)
  • 11/30(金)ラスベガス(06:40)→ サンフランシスコ(08:26)
  • 11/30(金)サンフランシスコ(10:35)→ 羽田(14:45(翌日))

タイムゾーンの変換にはRubyのワンライナーを使ってみました。結果を表にまとめてみます。太字はフライト情報の日時=主観日時です。

$ ruby -e "require 'time'; [ '2018-11-25 16:25 JST', '2018-11-25 08:40 PST', '2018-11-25 12:52 PST', '2018-11-25 14:21 PST', '2018-11-30 06:40 PST', '2018-11-30 08:26 PST', '2018-11-30 10:35 PST', '2018-12-1 14:45 JST' ].each {|t| tm = Time.parse(t); print tm.getutc, \" | \", tm.getlocal('+09:00'), \" | \", tm.getlocal('-08:00'), \"\n\" }"
場所 UTC JST PST 備考
羽田 2018-11-25 07:25:00 2018-11-25 16:25:00 2018-11-24 23:25:00 往路出発
サンフランシスコ 2018-11-25 16:40:00 2018-11-26 01:40:00 2018-11-25 08:40:00 到着
サンフランシスコ 2018-11-25 20:52:00 2018-11-26 05:52:00 2018-11-25 12:52:00 出発
ラスベガス 2018-11-25 22:21:00 2018-11-26 07:21:00 2018-11-25 14:21:00 到着
ラスベガス 2018-11-30 14:40:00 2018-11-30 23:40:00 2018-11-30 06:40:00 復路出発
サンフランシスコ 2018-11-30 16:26:00 2018-12-01 01:26:00 2018-11-30 08:26:00 到着
サンフランシスコ 2018-11-30 18:35:00 2018-12-01 03:35:00 2018-11-30 10:35:00 出発
羽田 2018-12-01 05:45:00 2018-12-01 14:45:00 2018-11-30 21:45:00 到着

タイムゾーンを合わせるとフライト時間がわかりやすいですね。往路は9時間15分+1時間29分、復路は1時間46分+11時間10分のようです。復路で羽田空港に到着するのが翌日となっていましたが、そもそもサンフランシスコを出発するのがJSTだと12月1日の3時半ごろなので納得です。ちなみに往路の到着時刻は8時40分ですが、JSTだと深夜2時前なので機内の睡眠などで調整しないと辛そうですね。

成田空港発、バンクーバー経由、ラスベガス着の往復

  • 11/25(日)成田(18:40)→バンクーバー(10:20)
  • 11/25(日)バンクーバー(12:05)→ラスベガス(14:46)
  • 11/30(金)ラスベガス(07:45)→バンクーバー(10:33)
  • 11/30(金)バンクーバー(13:45)→成田(16:40(翌日))

先ほどと同様にRubyのワンライナーを使って変換し、結果を表にまとめました。太字はフライト情報の日時=主観日時です。

$ ruby -e "require 'time'; [ '2018-11-25 18:40 JST', '2018-11-25 10:20 PST', '2018-11-25 12:05 PST', '2018-11-25 14:46 PST', '2018-11-30 07:45 PST', '2018-11-30 10:33 PST', '2018-11-30 13:45 PST', '2018-12-1 16:40 JST' ].each {|t| tm = Time.parse(t); print tm.getutc, \" | \", tm.getlocal('+09:00'), \" | \", tm.getlocal('-08:00'), \"\n\" }"
場所 UTC JST PST 備考
成田 2018-11-25 09:40:00 2018-11-25 18:40:00 2018-11-25 01:40:00 往路出発
バンクーバー 2018-11-25 18:20:00 2018-11-26 03:20:00 2018-11-25 10:20:00 到着
バンクーバー 2018-11-25 20:05:00 2018-11-26 05:05:00 2018-11-25 12:05:00 出発
ラスベガス 2018-11-25 22:46:00 2018-11-26 07:46:00 2018-11-25 14:46:00 到着
ラスベガス 2018-11-30 15:45:00 2018-12-01 00:45:00 2018-11-30 07:45:00 復路出発
バンクーバー 2018-11-30 18:33:00 2018-12-01 03:33:00 2018-11-30 10:33:00 到着
バンクーバー 2018-11-30 21:45:00 2018-12-01 06:45:00 2018-11-30 13:45:00 出発
成田 2018-12-01 07:40:00 2018-12-01 16:40:00 2018-11-30 23:40:00 到着

往路は8時間40分+2時間41分、復路は2時間48分+9時間55分のようです。こちらはバンクーバーに到着するのがJSTだと深夜3時20分とのこと。

まとめ

字面だけではつかみにくかった移動時間などがタイムゾーンをそろえることでわかりやすくなりました。日本からラスベガスへ移動する場合は17時間戻るわけですが、これは辛そうですね。逆に7時間進めて日付を戻す感覚の方がよいのでしょうか。検索すると時差ボケ対策もいろいろと出てきますのでしっかり準備していく所存です。

これからどんどん記事がアップされていきますのでお楽しみに!

AWS re:Invent 2018 | シリーズ | DevelopersIO