Функция time.Parse
Функция time.Parse преобразует строковое представление даты и времени в значение типа time.Time.
Первый параметр функции — это строка формата (шаблон), по которому будет выполняться парсинг.
Второй параметр — строка, содержащая дату и время для преобразования.
Функция возвращает объект time.Time и ошибку, если парсинг не удался.
Синтаксис
time.Parse(layout, value string) (time.Time, error)
Пример
Разберем базовый пример парсинга даты в формате "2006-01-02":
package main
import (
"fmt"
"time"
)
func main() {
layout := "2006-01-02"
str := "2023-12-25"
res, err := time.Parse(layout, str)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"2023-12-25 00:00:00 +0000 UTC"
Пример
Теперь рассмотрим парсинг строки с указанием времени в формате "2006-01-02 15:04:05":
package main
import (
"fmt"
"time"
)
func main() {
layout := "2006-01-02 15:04:05"
str := "2023-12-25 14:30:00"
res, err := time.Parse(layout, str)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"2023-12-25 14:30:00 +0000 UTC"
Пример
Парсинг строки с использованием предопределенного формата time.RFC3339:
package main
import (
"fmt"
"time"
)
func main() {
layout := time.RFC3339
str := "2024-01-15T10:30:00Z"
res, err := time.Parse(layout, str)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"2024-01-15 10:30:00 +0000 UTC"
Пример
Обработка ошибки при неверном формате строки:
package main
import (
"fmt"
"time"
)
func main() {
layout := "2006-01-02"
str := "25-12-2023"
res, err := time.Parse(layout, str)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(res)
}
Результат выполнения кода:
"parsing time \"25-12-2023\" as \"2006-01-02\": cannot parse \"25-12-2023\" as \"2006\""
Смотрите также
-
функцию
time.Time.Format,
которая форматирует время в строку по шаблону -
функцию
time.ParseInLocation,
которая парсит строку времени с учетом временной зоны -
константу
time.RFC3339,
стандартный формат времени согласно RFC 3339 -
константу
time.Layout,
базовый шаблон для парсинга и форматирования времени