Go предлагает обширную поддержку для времени и
продолжительности; вот несколько примеров.
|
|
|
|
|
|
|
func main() {
p := fmt.Println
|
Начнем с получения текущего времени
|
|
Вы можете построить структуру time , указав год,
месяц, день и т.д. Время всегда связано с местоположением ,
т.е. часовым поясом.
|
then := time.Date(
2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
p(then)
|
Вы можете извлечь различные компоненты значения времени.
|
p(then.Year())
p(then.Month())
p(then.Day())
p(then.Hour())
p(then.Minute())
p(then.Second())
p(then.Nanosecond())
p(then.Location())
|
Получения дня недели доступно через метод Weekday .
|
|
Эти методы сравниваются два раза, проверяя,
происходит ли первый случай до, после или
одновременно со вторым, соответственно.
|
p(then.Before(now))
p(then.After(now))
p(then.Equal(now))
|
Метод Sub возвращает Duration , интервал между
двумя временами.
|
diff := now.Sub(then)
p(diff)
|
Мы можем вычислить продолжительность.
|
p(diff.Hours())
p(diff.Minutes())
p(diff.Seconds())
p(diff.Nanoseconds())
|
Вы можете использовать Add , чтобы продвинуть
время на заданную продолжительность, или с - ,
чтобы переместиться назад.
|
p(then.Add(diff))
p(then.Add(-diff))
}
|