Когда вы читаете datestring
, в конце появляется символ завершения строки (\n
).time.Parse()
считывает это как ошибку синтаксического анализа, поскольку она отсутствует в вашей строке формата, поэтому вам нужно будет обработать это.
Один из способов - удалить ее с помощью strings.TrimSpace()
следующим образом:
datestring, _ = reader.ReadString('\n')
datestring = strings.TrimSpace(datestring)
Вы можете поочередно добавить \n
к вашему строковому формату, но я предпочитаю обрезать перевод строки, так как он использует более стандартную строку формата времени.
t1, _ := time.Parse("2006-01-02\n", datestring)
Для отладки вам необходимообработать ошибку от time.Parse()
примерно так:
t1, err := time.Parse("2006-01-02", datestring) //0001-01-01 00:00:00 +0000 UTC
if err != nil {
panic(err)
}
Это вернет следующую ошибку, указывающую на наличие дополнительного текста в вашей строке.Обратите внимание, что закрывающая двойная кавычка "
не следует сразу за датой.
panic: parsing time "2018-06-24
": extra text:
goroutine 1 [running]:
main.main()
/path/to/main.go:19 +0x503
exit status 2