Разобрать значение «date» поля dong монго в golang методом разбора временного пакета - PullRequest
0 голосов
/ 10 октября 2018

У меня есть created_date столбец в виде строки и его значение, например 2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062, которое я получил из mongo дБ столбцов, и теперь я вставил его в таблицу mysql и, конечно, он имеет тип string,Теперь проблема в том, что я не могу разобрать и отформатировать его, здесь я попытался разобрать код ниже, но не могу найти решение.

tm, err := time.Parse("2006-02-01", "2018-10-04 15:42:19.000404667 +0000 UTC m=+103.387519062")
if err != nil {
    fmt.Println(err)
}

И он напечатан с некоторыми ошибками, такими как:

время разбора "2018-10-04 15: 42: 19.000404667 +0000 UTC m = + 103.387519062" как "2006-01-02T15: 04: 05.999999999Z07: 00": невозможно проанализировать "15:42: 19.000404667 +0000 UTC m = + 103.387519062 "как" T "

Я пробовал с другим const из time пакетом, но все еще копался в нем, чего я здесь не хватает или яЯ делаю разбор с неправильным date типом.

Спасибо.

1 Ответ

0 голосов
/ 10 октября 2018

Если часть m=... не известна как постоянная (в этом случае вы должны включить ее в строку формата как есть), вам придется удалить ее из строки ввода перед передачей ее в time.Parse().Нет никакого способа сказать time.Parse(), что он должен игнорировать часть ввода (кроме случаев, когда это всегда одна и та же строка).

ПРИМЕЧАНИЕ: вы должны предоставить полный спецификатор времени в качестве формата, а не просто "2006-02-01 ", потому что если вы этого не сделаете, библиотека расширит его по-своему, включив часы, минуты и секунды - что не обязательно так, как вы этого хотите (в вашем случае она автоматически добавила T15:04:05.999999999Z07:00 - но ваши входные данные содержат пробел после даты, а не T, поэтому он не будет совпадать).В вашем случае (судя по вашему примеру входных данных) строка формата должна выглядеть следующим образом: 2006-02-01 15:04:05.000000000 -0700 MST

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