/var/www/yatta47.log

/var/www/yatta47.log

やったのログ置場です。スクラップみたいな短編が多いかと。

GoogleAppsScriptで文字列の日付のフォーマットを変更する

f:id:yatta47:20180930100116p:plain

本日はGoogleAppsScriptの話題。半JavaScriptですね。

いつのまにかGoogleAppsScriptからYoutubeAPIが叩けるようになっていたんですね。認証とかも画面でポチポチするだけでいいし、なによりコード上にKeyとかを埋め込まなくて済むようになったのはデカい。

ってことで、今まで自前でYoutube Data API v3をプログラムから叩いていたのをGASに乗せ換えてみようかと思ってみたところ、日付関連で詰まったので記事に。

 

ことのきっかけ

YoutubeAPIを叩いているときに、投稿日時(publishedAt)がISO8601とRFC3339での表記方法で返ってくるので、画面表示するときにUTCでなくJSTに、そしてTとかZとかを取り除きたいと思ったのがきっかけ。

 

やりたいこと

2018-09-27T09:00:02.000Zの日付形式を2018-09-27 18:00:02と、フォーマットを変える+日本時間(JST)で表示したい。

 

やり方

Utilities.formatDateでフォーマット変換してあげれば解決。

publishedAt = '2018-09-27T09:00:02.000Z';
Logger.log('pulishedAt : %s', publishedAt);
var publishAtJST = Utilities.formatDate(new Date(publishedAt), "JST", "yyyy-MM-dd HH:mm:ss");
Logger.log('publishAtJST: %s', publishAtJST);

実行結果

[18-09-30 09:48:59:628 JST] pulishedAt : 2018-09-27T09:00:02.000Z
[18-09-30 09:48:59:629 JST] publishDate : 2018-09-27 18:00:02

 

まとめ

日付関連はしょっちゅう出てくるわりによく忘れるので記事にしておきました。

あとはこれをSpreadSheetに書き込んでごにょごにょとすればよい。

本当は載せ替えとかしたくないんだけど、既存で作った動画まとめがなぜか表示されなくなっていて原因を追究するのも面倒なので新しく一新しようかなと思って始めました。

今日中にどうにかできるといいけど。

それではまたー。

参考

日時のフォーマット(ISO 8601) - Qiita

日付と時刻をTで繋ぐ表記方法 - MEMO:はてな支店

Google Apps Scriptの日付文字列の変換 - メモ

Class Utilities  |  Apps Script  |  Google Developers