2016-01-03 4 views
-2

У меня есть следующая строка:Go синтаксического анализа строки времени

Sun, 03 Jan 2016 10:00:07 CET 

Id хотел разобрать его во время, но не могу показаться, чтобы выяснить, как написать этот формат.

Это то, что я получил до сих пор:

layout := "Mon, 01 Jan 03:04:05" 
t, _ := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET") 
fmt.Println(t) 

Выход я получаю:

0001-01-01 00:00:00 +0000 UTC 
+3

'time.Parse()' возвращает ошибку. Распечатай это, и ты это узнаешь. – icza

ответ

3

Прежде всего: Вы молча игнорируя ошибку это возвращается в качестве второго возвращения значение time.Parse. Вместо этого я предлагаю обработать ошибку.

Во-вторых, давайте посмотрим на документацию time.Parse:

Parse разбирает отформатированную строку и возвращает значение времени он представляет. Макет определяет формат, показывая, как начало отсчета времени, определяется как Mon Jan 2 15:04:05 -0700 MST 2006 будет интерпретироваться, если бы значение; он служит примером входного формата. Затем будет введена такая же интерпретация входной строки.

Функция time.Parse ожидает своего layout параметра для представления фиксированной даты примера. Итак, для того, чтобы разобрать дату Sun, 03 Jan 2016 10:00:07 CET, соответствующий пример строки макет должен быть Mon, 02 Jan 2006 15:04:05 MST:

layout := "Mon, 02 Jan 2006 15:04:05 MST" 
t, err := time.Parse(layout, "Sun, 03 Jan 2016 10:00:07 CET") 
if err != nil { 
    // handle the error somehow! 
} 

fmt.Println(t) 
Смежные вопросы