вторник, 28 июля 2020 г.

Пакет time в Golang, функции Date, Now, Unix

Функция Date

func Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time

Date возвращает Time, соответствующее

yyyy-mm-dd hh:mm:ss + nsec nanoseconds

в соответствующей зоне для этого времени в данном месте.

Значения month, day, hour, min, sec, и nsec могут выходить за пределы своих обычных диапазонов и будут нормализованы во время преобразования. Например, October 32 конвертируется в November 1.

Переход на летнее время пропускает или повторяет время. Например, в Соединенных Штатах 13 марта 2011 г. 2:15 никогда не происходило, а 6 ноября 2011 г. 1:15 происходило дважды. В таких случаях выбор часового пояса и, следовательно, времени не является четко определенным. Date возвращает время, которое является правильным в одной из двух зон, участвующих в переходе, но не гарантирует, в какой именно.

Date паникует, если loc - nil.

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

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
    fmt.Printf("Go запущен %s\n", t.Local())
}

Вывод

Go запущен 2009-11-10 23:00:00 +0000 UTC

Функция Now

func Now() Time

Now возвращает текущее местное время.

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

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    fmt.Printf("Сейчас %s\n", t)
}

Вывод

Сейчас 2020-07-28 09:27:51.223683882 +0500 +05 m=+0.000052967

Функция Unix

func Unix(sec int64, nsec int64) Time

Unix возвращает местное время, соответствующее указанному времени Unix, sec секунд и nsec наносекунд, с 1 января 1970 года UTC. Допустимо передавать nsec вне диапазона [0, 999999999]. Не все значения sec имеют соответствующее значение времени. Одним из таких значений является 1<<63-1 (наибольшее значение int64).

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

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now().Unix()
    fmt.Printf("Текущий timestamp %d\n", t)
}

Вывод

Текущий timestamp 1596910715


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


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

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