2010年11月15日月曜日

Google Apps ScriptのTimezone

Google Apps Script はサーバーサイドで動作するので、Timezoneがどのように認識されているのか確認してみた。

function myFunction() {
var d = new Date();
Browser.msgBox(d.toLocaleString());
}


結果「November 9, 2010 8:22:16 AM PST」と表示された。

なお、クライアントサイドで実行されるJavaScriptでは「Wed Nov 10 2010 01:22:16 GMT+0900 (Japan Standard Time)」と表示された。

Googleのサーバが設置してある地域にあわせてあるのだろうか?
と思ったがちょっと調べたら、スクリプトエディタの[ファイル]->[プロパティ]で設定できることが分かった。

さっそく、タイムゾーンを「(GMT+09:00) Tokyo」に設定し先ほどのスクリプトでJSTと変化したので、さらに確認用のスクリプトを作成してみた。
function myFunction() {
// デフォルトのカレンダーを取得
var MyCalendar = CalendarApp.getDefaultCalendar();
// 現在の日時を取得
var d1 = new Date();
// その日の深夜を求める
var d2 = new Date;
d2.setHours(24);
d2.setMinutes(0);
d2.setSeconds(0);
// イベント作成
var evt = MyCalendar.createEvent( "テストイベント", d1, d2 );
// 登録されたイベント終了時刻を表示
Browser.msgBox(evt.getEndTime());
}

スクリプトの内容は実行時刻からその日の深夜までのイベントを登録するスクリプトで、思った通り動作した。

当分はこれでもよいが、そのうちJST以外のタイムゾーンに設定されているカレンダーだと正常に動作しないので、なにか対策を考えたいと思う。

0 件のコメント:

コメントを投稿