суббота, 25 июля 2020 г.

Пакет time в Golang, функции возвращающие Location

Функция FixedZone

func FixedZone(name string, offset int) *Location

FixedZone возвращает местоположение, которое всегда использует заданное имя зоны и смещение (в секундах к востоку от UTC).

Пример использования FixedZone:

package main

import (
    "fmt"
    "time"
)

func main() {
    loc := time.FixedZone("UTC-8", -8*60*60)
    t := time.Date(2009, time.November, 10, 23, 0, 0, 0, 
                   loc)
    fmt.Println("Время:", t.Format(time.RFC822))
}

Вывод:

Время: 10 Nov 09 23:00 UTC-8

Функция LoadLocation

func LoadLocation(name string) (*Location, error)

LoadLocation возвращает Location с заданным именем.

Если имя "" или "UTC", LoadLocation возвращает UTC. Если имя "Local", LoadLocation возвращает Local.

В противном случае имя считается именем местоположения, соответствующим файлу в базе данных часового пояса IANA, например "America/New_York".

База данных часовых поясов, необходимая для LoadLocation, может присутствовать не во всех системах, особенно в не-Unix системах. LoadLocation просматривает каталог или несжатый zip-файл с именем переменной среды ZONEINFO, если таковой имеется, затем просматривает известные места установки в системах Unix и, наконец, просматривает файл $GOROOT/lib/time/zoneinfo.zip.

Пример использования LoadLocation:

package main

import (
    "fmt"
    "time"
)

func main() {
    location, err := time.LoadLocation("America/Los_Angeles")
    if err != nil {
        panic(err)
    }

    timeInUTC := time.Date(2018, 8, 30, 12, 0, 0, 0, 
                           time.UTC)
    fmt.Println(timeInUTC)
    fmt.Println(timeInUTC.In(location))
}

Вывод:

2018-08-30 12:00:00 +0000 UTC
2018-08-30 05:00:00 -0700 PDT


Читайте также:


Комментариев нет:

Отправить комментарий