Метод time.Time.IsDST

Метод IsDST определяет, находится ли время, представленное объектом time.Time, в периоде действия летнего времени (Daylight Saving Time). Метод возвращает true, если указанный момент времени приходится на летнее время, и false в противном случае. Результат зависит от временной зоны, связанной с объектом времени.

Синтаксис

got.IsDST() bool

Пример

Давайте проверим, является ли текущее время летним для местной временной зоны:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  now := time.Now()
  res := now.IsDST()
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Давайте проверим даты в разных временных зонах и сравним результат для Нью-Йорка и Лондона:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  locationNY, _ := time.LoadLocation("America/New_York")
  locationLondon, _ := time.LoadLocation("Europe/London")

  date := time.Date(2026, time.June, 1, 12, 0, 0, 0, locationNY)
  resNY := date.IsDST()

  dateLondon := date.In(locationLondon)
  resLondon := dateLondon.IsDST()

  fmt.Println(resNY)
  fmt.Println(resLondon)
}

Результат выполнения кода:

gotrue
true

Пример

Давайте проверим дату в UTC, где летнее время не применяется:

gopackage main

import (
  "fmt"
  "time"
)

func main() {
  utcTime := time.Date(2026, time.July, 1, 12, 0, 0, 0, time.UTC)
  res := utcTime.IsDST()
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Смотрите также

  • метод time.Time.Zone,
    который возвращает имя временной зоны и смещение относительно UTC
  • метод time.Time.Location,
    который возвращает временную зону, связанную с объектом времени
  • функцию time.LoadLocation,
    которая загружает временную зону по названию
  • метод time.Time.In,
    который преобразует время в указанную временную зону