package main import ( "fmt" "time" ) func main() { timeMethod() /* // Получаем текущее время now := time.Now() // Создаем времч с помощью конкретных значений currentTime := time.Date( 2020, time.May, 15, // день 10, // часы 13, // минуты 12, // секунды 45, // наносекунды time.UTC, ) // Создаем время, используя секунды и наносекунды, прошедшие с начала эпохи Unix unixTime := time.Unix( 150000, // секунды 1, // наносекунды ) // 01-02 03:04.05 0006 15 // день месяц час(12) минуты секунды год час(24) // Форматируем и выводим время в строковом виде // fmt.Println(now.Format("02-01-2006 15:04:05")) fmt.Println(now.Format("02-01-2006 15:04:05")) fmt.Println(currentTime.Format("02-01-2006 15:04:05")) fmt.Println(unixTime.Format("02-01-2006 15:04:05")) // Функция Parse парсит строку в соответствии с заданным шаблоном firstTime, err := time.Parse("2006/01/02 15-04", "2020/05/15 17-45") if err != nil { panic(err) } fmt.Println(firstTime.Format("02-01-2006 15:04:05")) // LoadLocation находит временную зону в справочнике IANA // https://www.iana.org/time-zones loc, err := time.LoadLocation("Asia/Yekaterinburg") if err != nil { panic(err) } // Функция ParseInLocation парсит строку в указанной временной зоне secondTime, err := time.ParseInLocation("Jan 2 06 03:04:05pm", "May 15 20 05:45:10pm", loc) if err != nil { panic(err) } fmt.Println(firstTime.Format("02-01-2006 15:04:05")) // 15-05-2020 17:45:00 fmt.Println(secondTime.Format("02-01-2006 15:04:05")) // 15-05-2020 17:45:10 */ } func timeMethod() { current := time.Date(2020, time.May, 15, 17, 45, 12, 0, time.Local) fmt.Println(current.Date()) fmt.Println(current.Year()) fmt.Println(current.Month()) fmt.Println(current.Day()) fmt.Println(current.Clock()) fmt.Println(current.Hour()) fmt.Println(current.Minute()) fmt.Println(current.Second()) fmt.Println(current.Unix()) fmt.Println(current.Weekday()) fmt.Println(current.YearDay()) current = time.Date(2020, time.May, 15, 17, 45, 12, 0, time.Local) fmt.Println(current.Format("02-01-2006 15:04:05")) // Сравнение структур Time firstTime := time.Date(2020, time.May, 15, 17, 45, 12, 0, time.Local) secondTime := time.Date(2020, time.May, 15, 16, 45, 12, 0, time.Local) // func (t Time) After(u Time) bool // true если позже fmt.Println(firstTime.After(secondTime)) // true // func (t Time) Before(u Time) bool // true если раньше fmt.Println(firstTime.Before(secondTime)) // false // func (t Time) Equal(u Time) bool // true если равны fmt.Println(firstTime.Equal(secondTime)) // false // Методы, изменяющие структуру Time now := time.Date(2020, time.May, 15, 17, 45, 12, 0, time.Local) // func (t Time) Add(d Duration) Time // изменяет дату в соответствии с параметром - "продолжительностью" future := now.Add(time.Hour * 12) // перемещаемся на 12 часов вперед // func (t Time) AddDate(years int, months int, days int) Time // изменяет дату в соответствии с параметрами - количеством лет, месяцев и дней past := now.AddDate(-1, -2, -3) // перемещаемся на 1 год, два месяца и 3 дня назад // func (t Time) Sub(u Time) Duration // вычисляет время, прошедшее между двумя датами fmt.Println(future.Sub(past)) // 10332h0m0s }