English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Golang

Golang управляющие инструкции

Golang функции и методы

Golang структура

Golang срезы и массивы

Строки (String) в Go

Пункторы в Go

Интерфейсы в Go

Конкурентное программирование в Go

Исключения (Error) в Go

Разные темы по Go

Время (Date-Time) языка Go

Go предоставляет отличную поддержку для работы с временем. Время Unix эры используется в качестве参照ки для работы с временем.

Мы можем использовать метод Date из пакета time для создания объектов времени. Пакет содержит такие методы, как year(), month(), day(), location() и т.д.

Мы можем вызывать эти методы, используя объекты времени.

Пример работы с датой и временем на Go

package main
import "fmt"
import "time"
func main() {
	p := fmt.Println
	present := time.Now()//当前时间
	p(present)
	DOB := time.Date(1993, 02, 28, 9, 04, 39, 213, time.Local)
	fmt.Println(DOB)
	fmt.Println(DOB.Year())
	fmt.Println(DOB.Month())
	fmt.Println(DOB.Day())
	fmt.Println(DOB.Hour())
	fmt.Println(DOB.Minute())
	fmt.Println(DOB.Second())
	fmt.Println(DOB.Nanosecond())
	fmt.Println(DOB.Location())
	fmt.Println(DOB.Weekday())
	fmt.Println(DOB.Before(present))
	fmt.Println(DOB.After(present))
	fmt.Println(DOB.Equal(present))
	diff := present.Sub(DOB)
	fmt.Println(diff)
	fmt.Println(diff.Hours())
	fmt.Println(diff.Minutes())
	fmt.Println(diff.Seconds())
	fmt.Println(diff.Nanoseconds())
	fmt.Println(DOB.Add(diff))
	fmt.Println(DOB.Add(-diff))
}

Вывод:

2017-10-04 17:10:13.474931994 +0530 IST m=+0.000334969
28 февраля 1993 09:04:39.000000213 +0530 IST
1993
Февраль
28
9
4
39
213
Локальное время
Воскресенье
true
false
false
215624h5m34.474931781s
215624.09290970326
1.2937445574582197e+07
7.762467344749318e+08
776246734474931781
4-го октября 2017 17:10:13.474931994 +0530 IST
25-го июля 1968 00:59:04.525068432 +0530 IST
Процесс завершен с кодом выхода 0

Пример времени Go 2

package main
import (
	"fmt"
	"time"
)
func main() {
	present := time.Now()
	fmt.Println("Сегодня: ", present.Format("Mon, Jan 2, 2006 at 3:04pm"))
	someTime := time.Date(2017, time.March, 30, 11, 30, 55, 123456, time.Local)
	// Использование time.Equal() для сравнения времени
	sameTime := someTime.Equal(present)
	fmt.Println("someTime equals to now ? : ", sameTime)
	// Расчет разницы во времени между сегодняшним днем и днем в прошлом
	diff := present.Sub(someTime)
	// Преобразование разницы во времени в дни
	days := int(diff.Hours() / 24)
	fmt.Printf("30-го марта 2017 года прошло %d дней назад \n", days)
}

Вывод:

Сегодня: Ср, 4 окт 2017 в 17:15
someTime equals to now ? : false
30-го марта 2017 года прошло 188 дней назад