カレンダーのタイムゾーンを使用して、日付オブジェクトのタイムゾーンを設定したいと思います。適切なテクニックを探しています。全国にいくつかの拠点があり、それぞれに日記や日常の活動のための独自のカレンダーがあります。カレンダーに投稿するスクリプトが複数あります。カレンダーのタイムゾーンを使用して日付オブジェクトのタイムゾーンを設定したいのは、ユーザーがさまざまな拠点に移動し、コンピューターが正しいタイムゾーンに設定されていない可能性があるためです。誤った時間設定を避けたい。
スクリプトのtimeZoneをUTCに設定する必要がありますか?
これは私が現在いるところです:
function submitUiTest(e) { var app = UiApp.getActiveApplication(); var cal = CalendarApp.getCalendarById('calendarId'); var timeZone = cal.getTimeZone(); var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName('Sheet1'); var startTime = e.parameter.startDate startTime.setHours(e.parameter.startHour, e.parameter.startMin, 0) startTime = formatTime(startTime, timeZone); Logger.log(startTime) var endTime = e.parameter.endDate endTime.setHours(e.parameter.endHour, e.parameter.endMin, 0); endTime = formatTime(endTime, timeZone); Logger.log(endTime) cal.createEvent('TimeZone Test', new Date(startTime), new Date(endTime)); ss.appendRow([startTime, endTime]); return app; } function formatTime(time, timeZone){ return Utilities.formatDate(time, (timeZone-time.getTimezoneOffset()), 'M/d/yyyy HH:mm'); }
編集:現在3つのカレンダーがあり、それらはユーザーカレンダーではなく、個々のエアステーション用に作成された個別のカレンダーです。エアステーションはそれぞれ別々のタイムゾーンにあります。乗組員はこれらのステーションで作業するため、毎日のアクティビティをカレンダーに投稿します。また、同じカレンダーに投稿するUiスクリプトもいくつかあります。フライトログ。カレンダーへのエントリがいずれかのカレンダーに投稿されると、時間はスクリプトで設定されたタイムゾーンにのみ関連し、カレンダーのタイムゾーンには関連しません。日付またはタイムスタンプオブジェクトが作成されたときに、カレンダー自体が設定されているtimeZoneを使用するにはどうすればよいですか。
さまざまなタイムゾーンの日付を記録するスクリプトのベストプラクティスは何ですか?スクリプトのタイムゾーンをUTCに設定し、変換を行いますか?ユーザーのタイムゾーンを取得するために何を使用しますか。この場合、ユーザーのタイムゾーンが何に設定されているかは関係ありません。カレンダーのタイムゾーンを使用する必要があります。