РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
813 of 1593 menu

Функция time.ParseInLocation

Функция time.ParseInLocation преобразует строку, представляющую дату и время, в значение time.Time. В отличие от time.Parse, она использует переданный часовой пояс для интерпретации времени, если в строке не указан пояс явно. Первым параметром функция принимает шаблон разбора (layout), вторым — строку для разбора (value), третьим — часовой пояс (location).

Синтаксис

time.ParseInLocation(layout, value string, loc *time.Location) (time.Time, error)

Пример

Разберем строку "2026-09-04 15:04:05" с использованием часового пояса UTC:

package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05" str := "2026-09-04 15:04:05" loc := time.UTC res, err := time.ParseInLocation(layout, str, loc) if err != nil { fmt.Println(err) return } fmt.Println(res) }

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

"2026-09-04 15:04:05 +0000 UTC"

Пример

Разберем ту же строку, но с часовым поясом Europe/Moscow. Обратите внимание, что время интерпретируется как московское:

package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05" str := "2026-09-04 15:04:05" loc, err := time.LoadLocation("Europe/Moscow") if err != nil { fmt.Println(err) return } res, err := time.ParseInLocation(layout, str, loc) if err != nil { fmt.Println(err) return } fmt.Println(res) }

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

"2026-09-04 15:04:05 +0300 MSK"

Пример

Если строка содержит явный часовой пояс, ParseInLocation игнорирует переданный пояс и использует тот, что указан в строке:

package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05 -0700" str := "2026-09-04 15:04:05 -0400" loc := time.UTC res, err := time.ParseInLocation(layout, str, loc) if err != nil { fmt.Println(err) return } fmt.Println(res) }

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

"2026-09-04 15:04:05 -0400 -0400"

Пример

При разборе строки без часового пояса, ParseInLocation использует переданный пояс для создания time.Time:

package main import ( "fmt" "time" ) func main() { layout := "2006-01-02 15:04:05" str := "2026-09-04 15:04:05" loc := time.FixedZone("CST", 8*3600) res, err := time.ParseInLocation(layout, str, loc) if err != nil { fmt.Println(err) return } fmt.Println(res) }

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

"2026-09-04 15:04:05 +0800 CST"

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

  • функцию time.Parse,
    которая разбирает строку времени без учета переданного пояса
  • функцию time.Time.In,
    которая преобразует время в указанный часовой пояс
  • функцию time.Time.Location,
    которая возвращает часовой пояс времени
  • функцию time.LoadLocation,
    которая загружает часовой пояс по имени из базы данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить