2018年12月14日金曜日

現地時間などから日本時間を調べたい




海外のなんかのイベントで「ライブ配信がxx時yy分から行われます」って情報があったとき「日本時間だと何時だろう」って知りたい事ありますよね。




例1

直近だと、自宅で使ってる SAS OnDemand for Academics のメンテナンス終了予定が

    Dec 13, 2018 17:00 UTC

みたいに書かれてて、日本時間でいつ終わるのか知りたいってことがあります。ネットで調べれば速攻で分かりますが、SAS使いとしてはSASで調べてみましょう。


data _null_;
   utc_dt = '2018-12-13T17:00:00'dt;
   jpn_dt = tzoneu2s( utc_dt, 'Asia/Tokyo' );
   put jpn_dt= datetime.;
run;

Log
jpn_dt=14DEC18:02:00:00


なるほど、日本時間だと12月14日の2時にメンテが終わるってことですね。

  • TZONEU2S関数」は、UTC(世界協定時)を指定したタイムゾーンIDの日時に変換します。
  • ちなみに「SAS timezone id」とかでググれば都市ごとのタイムゾーンIDが載ってるSASのリファレンスが見つかるはずです。



例2

テキサス州ダラスで現地時間2018年12月12日23時10分になんかのライブ配信が行われますってなった時に、日本時間だといつか調べたいとします。

data _null_;
   dal_dt = '2018-12-12T23:10:00'dt;
   utc_dt = tzones2u( dal_dt, 'America/Chicago' );
   jpn_dt = tzoneu2s( utc_dt, 'Asia/Tokyo' );
   put jpn_dt= datetime.;
run;

Log
jpn_dt=13DEC18:14:10:00


日本時間で13日の14時10分からライブ配信が開始だってのが分かります。

  • TZONES2U関数」は、指定した日時とそのタイムゾーンIDからUTC(世界協定時)に変換します。
  • ちなみにテキサス州ダラスのタイムゾーンIDがないっぽいので、同じタイムゾーンを持つ 'America/Chicago' を設定しています。(この同じタイムゾーン調べるのも少し面倒)


関数の区別方法

TZONEU2SとTZONES2Uって似てますが、

・TZONEU2S・・・「UTC datetime to SAS datetime」
・TZONES2U・・・「SAS datetime to UTC datetime」

と考えると覚えやすいと思います。




0 件のコメント:

コメントを投稿