|
|
@@ -6,41 +6,121 @@ import (
|
|
|
)
|
|
|
|
|
|
func main() {
|
|
|
- // Получаем текущее время
|
|
|
- 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("00-00-0000 00:00:00"))
|
|
|
+ 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
|
|
|
+
|
|
|
}
|