Парсинг Mysql datetime на время golang - PullRequest
0 голосов
/ 22 сентября 2018

У меня есть MySQL datetime в моей таблице в стандартном формате MySQL, например

"2018-09-19 18: 26: 32.000000"

и при попыткепреобразуя его в время Голанга, используя функцию time.parse(), я получаю ошибку, что

время разбора "2018-09-19 18: 26: 32.000000": месяц вне диапазона

Я попытался выполнить поиск в Интернете, и формат, по-видимому, разрешен и часто используется многими для успешного анализа.

Может кто-нибудь помочь мне с тем, что мне не хватает?Ниже приведен фрагмент кода, который я использую.

import (
    "fmt"
    "time"
)

layout := "2018-09-19 18:26:32.000000"
fmt.Println(val)
// prints 2018-09-19 18:26:32.000000
t, err := time.Parse(layout, val)
fmt.Println(fmt.Println(t.Unix()))
// prints -62135596800 
fmt.Println(err)
// prints parsing time "2018-09-19 18:26:32.000000": month out of range

1 Ответ

0 голосов
/ 22 сентября 2018

Ваш макет неправильный, он должен быть "2006-01-02 15:04:05.000000".Документация гласит:

Анализ разбирает отформатированную строку и возвращает значение времени, которое она представляет.Формат определяет формат, показывая, как эталонное время, определенное как

Пн 2 января 15:04:05 -0700 MST 2006

, будет интерпретировано, если оно будет значением;это служит примером формата ввода.Такая же интерпретация будет затем сделана для входной строки.

package main

import (
    "fmt"
    "time"
)

func main() {

    val := "2018-09-19 18:26:32.000000"
    layout := "2006-01-02 15:04:05.000000"
    t, _ := time.Parse(layout, val)
    fmt.Println(t.Unix()) // prints 1537381592
}

Выходы

1537381592

Попробуйте здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...