У вас есть две проблемы.
Во-первых, вы не должны называть переменную time
, поскольку это имя встроенного пакета.Я полагаю, вы знали, что это просто ошибка вставки копии.
Далее строка, которую вы передаете time.Parse()
, - это строка формата, которая должна описывать формат строки времени изваша база данных.Вы уже знаете, что формат: 2018-06-07T16:16:57Z
, так что просто использовать, что замена значения с отсчета времени Go содержит
1013 * Здесь работает вариант:. 1015
Запуск на игровой площадке
Более того, база данных формата времени часто описывается как RFC3339, которая также доступна как константа time.RFC3339
в Go.
Поэтому использование этого упрощает ваш код еще больше:
package main
import (
"fmt"
"time"
)
func main() {
tm := "2018-06-07T16:16:57Z"
fmt.Println(tm)
t, err := time.Parse(time.RFC3339, tm)
if err != nil {
panic(err)
}
fmt.Println(t)
}
Запуск на игровой площадке
И если вы предпочитаете, вы также можете позволить драйверу базы данных преобразоватьвремя, отсканировав его в переменную time.Time
.
Например:
var tm time.Time
if err = row.Scan(&tm); err != nil {
panic(err)
}
fmt.Print(tm)