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))
}
|