Script

【GAS】Dateオブジェクトで日時を指定する

Dateオブジェクトで日時を指定する

日時をあつかうときはDateオブジェクトを使います。

まさに今の日時を指定する

明日を指定する

日付を指定する

日付と時間を指定する

国(タイムゾーン)を指定する

指定した日時を取得するやり方については別の記事で例とともに説明しています。

まさに今の日時を指定する

まさに今の日時を指定します。

const setDate = () => {
  const date = new Date()
  console.log(date)
}

実行結果

明日を指定する

const setDate = () => {
  const today1 = new Date()
  const tomorrow1 = new Date(today1.setDate(today1.getDate() + 1))

  const today2 = new Date()
  const tomorrow2 = new Date(today2.getTime() + (1000 * 60 * 60 * 24))

  console.log(tomorrow1)
  console.log(tomorrow2)
}

tomorrow1はgetDateメソッドで本日の日付を取り出して1を足しています。

tomorrow2はgetTimeメソッドでUNIX時間を取得して明日の今の時間をミリ秒で足しています。

UNIX時間

UTCで1970年1月1日の00:00:00からのミリ秒時間

上のコードの1000 * 60 * 60 * 24は1ミリ秒を1秒になおし、1秒を1分になおし、1分を1時間になおし、1時間を24時間になおして「一日後」を表現しています。

日付を指定する

今とか明日とか明後日ではなく、日付を指定することもできます。

2025年1月1日を指定します。

const setDate = () => {
  const oshogatsu = new Date(2025, 0, 1)
  console.log(oshogatsu)
}

実行結果

日付の指定

new Date(年, 月, 日)の順番で数字を入れる


2025年の1月1日はnew Date(2025, 0, 1)と表現できます。

1月は0と表現します。月は1月を0として、12月を11とするからです。

  • 0:1月
  • 1:2月
  • 2:3月
  • 3:4月
  • 4:5月
  • 5:6月
  • 6:7月
  • 7:8月
  • 8:9月
  • 9:10月
  • 10:11月
  • 11:12月


ちなみにこのように指定しても大丈夫です。

const oshogatsu = new Date('2025/01/01')

2025/01/01という表記を使う場合は”でかこんで文字列とします。

アメリカっぽい表記でもオッケー。

const oshogatsu = new Date('01/01/25')

日付と時間を指定する

2024年のゆく年くる年が始まる日時を指定します。

2024年12月31日23時40分くらい?

const setDate = () => {
  const yukutoshikurutoshi1 = new Date(2024, 11, 31, 23, 40, 0)
  const yukutoshikurutoshi2 = new Date('2024/12/31 11:40:00 PM')
  const yukutoshikurutoshi3 = new Date('2024/12/31 23:40:00')

  console.log(yukutoshikurutoshi1)
  console.log(yukutoshikurutoshi2)
  console.log(yukutoshikurutoshi3)
}

実行結果


表記の仕方は異なりますが、すべて同じ出力結果が得られました。

国(タイムゾーン)を指定する

まさに今!の日時でも日本とカリフォルニアでは日時が異なります。

日本とカリフォルニアは16時間か17時間の時差があります。夏時間だと16時間で、通常時間だと17時間です。

取得した日本時間から16時間か17時間を引いてもいいですが、それだと面倒くさい事態が待っていそうですね。

なのでこうします。

const setDate = () => {
  const date = new Date()
  const californiaDate = new Date(date.toLocaleString('en-US', {timeZone: 'America/Los_Angeles'}))
  console.log(californiaDate)
}

実行結果


toLocaleStringメソッドを使って、ロサンゼルスのタイムゾーンの「今」を取得しています。

これだと夏時間なら16時間、通常時間なら17時間の時差となるように計算してくれます。


ロサンゼルスは今頃真っ暗

Copied title and URL