Константа time.DateTime
Константа time.DateTime предоставляет стандартный
шаблон для форматирования и парсинга даты и времени в формате
"2006-01-02 15:04:05". Этот шаблон соответствует
формату YYYY-MM-DD HH:MM:SS (год-месяц-день часы:минуты:секунды)
и является одним из предопределенных форматов в пакете time.
Он удобен для вывода даты и времени в человекочитаемом виде без
указания часового пояса.
При использовании в функциях Time.Format и
time.Parse константа time.DateTime позволяет
преобразовывать объекты типа time.Time в строку
указанного формата и обратно.
Синтаксис
time.DateTime
Константа имеет тип string и может использоваться
везде, где ожидается строка с шаблоном времени.
Пример
Давайте получим текущее время и отформатируем его
с помощью константы time.DateTime:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now()
res := now.Format(time.DateTime)
fmt.Println(res)
}
Результат выполнения кода (пример):
"2026-09-04 15:04:05"
Пример
Теперь распарсим строку с датой и временем в формате
time.DateTime в объект time.Time:
package main
import (
"fmt"
"time"
)
func main() {
str := "2025-01-01 12:30:45"
t, err := time.Parse(time.DateTime, str)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println(t)
}
Результат выполнения кода:
"2025-01-01 12:30:45 +0000 UTC"
Обратите внимание, что при парсинге без указания часового пояса,
время интерпретируется как UTC.
Пример
Сравним форматирование с константой time.DateTime
и вручную заданным шаблоном:
package main
import (
"fmt"
"time"
)
func main() {
t := time.Date(2024, 12, 25, 18, 20, 30, 0, time.UTC)
res1 := t.Format(time.DateTime)
res2 := t.Format("2006-01-02 15:04:05")
fmt.Println(res1)
fmt.Println(res2)
fmt.Println(res1 == res2)
}
Результат выполнения кода:
"2024-12-25 18:20:30"
"2024-12-25 18:20:30"
"true"
Как видно, использование константы дает тот же результат, что и явное указание шаблона, но делает код более читаемым и устойчивым к опечаткам.
Смотрите также
-
константу
time.DateOnly,
которая содержит шаблон для форматирования только даты -
константу
time.TimeOnly,
которая содержит шаблон для форматирования только времени -
функцию
time.Time.Format,
которая форматирует время согласно переданному шаблону -
функцию
time.Parse,
которая преобразует строку во время по указанному шаблону