LANG SELRCT

コードを書く場所についてはこちら

2017年12月9日土曜日

TimeZoneの時差を取得したい



TimeZoneの違いによって発生する時差を取得したいと思った時に書いたコードです

以下のコードの例では東京とシドニーの時差を求めています


コード.gs
function time_zone_diff() {
  var date = new Date();
  var zone_tokyo = 'Asia/Tokyo';
  var zone_target = 'Australia/Sydney';
  var tokyo = Utilities.formatDate(date, zone_tokyo, 'yyyy/MM/dd/HH:mm:ss');
  var target = Utilities.formatDate(date, zone_target, 'yyyy/MM/dd/HH:mm:ss');
  var date_tokyo = new Date(tokyo);
  var date_target = new Date(target);
  var diff_millisec = date_tokyo - date_target;
  var diff_sec = diff_millisec / 1000;
  var diff_min = diff_sec / 60;
  var diff_hour = diff_min / 60;
  Logger.log([zone_tokyo, tokyo, zone_target, target, diff_hour]);
}
意訳
この処理は以下を実行する
現在時刻を取得して
東京のタイムゾーンを指定して
シドニーのタイムゾーンを指定して
現在時刻を東京時間でフォーマットしてtokyoに入れて
現在時刻をシドニー時間でフォーマットしてtargetに入れて
東京時間をnew Date()に入れて
シドニー時間をnew Date()に入れて
東京時間-シドニー時間の差分をミリ秒で取得して
ミリ秒を1000で割って秒単位にして
秒を60で割って分単位にして
分を60で割って時単位にして
ログに出す