スクリプトを記述してトリガーにバインドするオプションがあります。問題は、スクリプト本体で現在の時刻を取得する方法です。
function myFunction() {
var currentTime = // <<???
}
スクリプトを記述してトリガーにバインドするオプションがあります。問題は、スクリプト本体で現在の時刻を取得する方法です。
function myFunction() {
var currentTime = // <<???
}
JavaScriptDate()
オブジェクトを使用します。オブジェクトから時刻、日付、タイムスタンプなどを取得する方法はいくつかあります。(参考)
function myFunction() {
var d = new Date();
var timeStamp = d.getTime(); // Number of ms since Jan 1, 1970
// OR:
var currentTime = d.toLocaleTimeString(); // "12:35 PM", for instance
}
私は次のように私のGoogleドキュメントのタイムゾーンで検討しました:
timezone = "GMT+" + new Date().getTimezoneOffset()/60
var date = Utilities.formatDate(new Date(), timezone, "yyyy-MM-dd HH:mm"); // "yyyy-MM-dd'T'HH:mm:ss'Z'"
Date
javascriptによって提供されるオブジェクトを使用します。これは、Googleのスクリプト環境に固有または特別なものではありません。
Googleスプレッドシートで現在の時刻を取得することは、Googleのスクリプト環境に固有のものではないと言う人は、明らかにGoogleAppsScriptを使用したことがありません。
そうは言っても、あなたは何について現在の時間を返したいですか?スクリプトユーザーのタイムゾーン?スクリプト所有者のタイムゾーン?
スクリプトのタイムゾーンは、スクリプトの所有者によってスクリプトエディタで設定されます。ただし、スクリプトのさまざまな許可ユーザーは、File/Spreadsheet settings
Googleスプレッドシートのメニューから使用しているスプレッドシートのタイムゾーンを設定できます。
私はあなたが最初のオプションが欲しいと思います。組み込み関数を使用してスプレッドシートのタイムゾーンを取得し、Utilities
クラスを使用して日付をフォーマットできます。
var timezone = SpreadsheetApp.getActive().getSpreadsheetTimeZone();
var date = Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE, d MMM yyyy HH:mm")
または、Javascriptのdateメソッドを使用してUTC時間からタイムゾーンオフセットを取得し、タイムゾーンをフォーマットして、に渡しますUtilities.formatDate()
。
ただし、これには1つの小さな調整が必要です。によって返されるオフセットはgetTimezoneOffset()
、タイムゾーンの考え方と矛盾します。オフセットが正の場合、米国のタイムゾーンのように、ローカルタイムゾーンはUTCより遅れています。オフセットが負の場合、アジア/バンコク、オーストラリア東部標準時などのように、ローカルタイムゾーンはUTCより進んでいます。
const now = new Date();
// getTimezoneOffset returns the offset in minutes, so we have to divide it by 60 to get the hour offset.
const offset = now.getTimezoneOffset() / 60
// Change the sign of the offset and format it
const timeZone = "GMT+" + offset * (-1)
Logger.log(Utilities.formatDate(now, timeZone, 'EEE, d MMM yyyy HH:mm');
オブジェクトは、Date
日付と時刻を操作するために使用されます。
日付オブジェクトは。で作成されnew Date()
ます。
var date= new Date();
function myFunction() {
var currentTime = new Date();
Logger.log(currentTime);
}