Time

Час|Time #

// Go має об'ємну підтримку часових значень
// та значень тривалості. Давайте розглянемо
// наступні приклади.

package main

import (
	"fmt"
	"time"
)

func main() {
	p := fmt.Println

	// Розпочнемо з отримання поточного часу.
	now := time.Now()
	p(now)

	// Ми можемо створювати структуру часу, задаючи значення
	// для року, місяця, дня і так далі. Час завжди асоційований
	// з _Розташуванням_, інакше кажучи, з часовою зоною.
	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())

	// Окрему зручність ми отримуємо від виділеного
	// методу що повертає - день тижня.
	p(then.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))
}
$ go run time.go
2018-03-26 11:17:26.489645943 +0300 EEST m=+0.000299106
2009-11-17 20:34:58.651387237 +0000 UTC
2009
November
17
20
34
58
651387237
UTC
Tuesday
true
false
false
73211h42m27.838258706s
73211.70773284964
4.392702463970979e+06
2.635621478382587e+08
263562147838258706
2018-03-26 08:17:26.489645943 +0000 UTC
2001-07-12 08:52:30.813128531 +0000 UTC

# Далі - ми розглянемо споріднену тему - час відносний
# до епох Unix.