Метод time.Time.IsDST
Метод IsDST определяет, находится ли время, представленное объектом time.Time, в периоде действия летнего времени (Daylight Saving Time). Метод возвращает true, если указанный момент времени приходится на летнее время, и false в противном случае. Результат зависит от временной зоны, связанной с объектом времени.
Синтаксис
t.IsDST() bool
Пример
Давайте проверим, является ли текущее время летним для местной временной зоны:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
res := now.IsDST()
fmt.Println(res)
}
Результат выполнения кода:
false
Пример
Давайте проверим даты в разных временных зонах и сравним результат для Нью-Йорка и Лондона:
package 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)
}
Результат выполнения кода:
true
true
Пример
Давайте проверим дату в UTC, где летнее время не применяется:
package 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)
}
Результат выполнения кода:
false
Смотрите также
-
метод
time.Time.Zone,
который возвращает имя временной зоны и смещение относительно UTC -
метод
time.Time.Location,
который возвращает временную зону, связанную с объектом времени -
функцию
time.LoadLocation,
которая загружает временную зону по названию -
метод
time.Time.In,
который преобразует время в указанную временную зону