web-dev-qa-db-ja.com

Google Apps Script formatDate(GMTではなくユーザーのタイムゾーンを使用)

セルに現在の日付と時刻を設定する行があります。

sheet.getRange(1,1).setValue(new Date());

次に、そのセルの値に基づいてフォーマットされた日付を作成する行があります。

var addedDate = sheet.getRange(1,1).getValue();
var addedTime = Utilities.formatDate(addedDate, "GMT", "hh:mm a");

結果として追加されるTimeはGMTタイムゾーンにあるようで、ユーザーのタイムゾーンにする必要があります。通常は米国東部時間(-0500)ですが、時間から5時間を差し引くだけでは、夏時間(-0400)は考慮されません。

ここでformatDateのドキュメントを確認しました: https://developers.google.com/apps-script/reference/utilities/utilities#formatDate(Date、String、String)

公式のJava SimpleDateFormatクラスのドキュメントはこちらにリンクされています: http://docs.Oracle.com/javase/6/docs/api/Java/text/SimpleDateFormat.html

...しかし、GMTを置き換える有効なタイムゾーンのリストが見つかりません。

14
Employee

次のようにして、スプレッドシートのタイムゾーンを直接取得できます。

  var addedDate = sheet.getRange(1,1).getValue();
  var addedTime = Utilities.formatDate(addedDate, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "hh:mm a");

参照 ここにドキュメント

しかし、自分で選択したい場合、Google Apps Scriptはこれらの形式を使用します。

http://joda-time.sourceforge.net/timezones.html

24
Serge insas