English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Go предоставляет отличную поддержку для работы с временем. Время Unix эры используется в качестве参照ки для работы с временем.
Мы можем использовать метод Date из пакета time для создания объектов времени. Пакет содержит такие методы, как year(), month(), day(), location() и т.д.
Мы можем вызывать эти методы, используя объекты времени.
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
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 дней назад