Получение ошибки при разборе строки метки времени - PullRequest
0 голосов
/ 07 апреля 2020

Я попытался выполнить синтаксический анализ

Вторник, 07 апреля 2020 11:17:47 GMT + 0530 (стандартное время Индии)

Но получил следующую ошибку

время синтаксического анализа «вторник 07 апреля 2020 года 11:17:47 GMT + 0530 (стандартное время Индии)» как «2006-01-02T15: 04: 05Z07: 00»: невозможно проанализировать »вт 07 апреля 2020 года 11: 17:47 GMT + 0530 (Стандартное время Индии) "as" 2006 "0001-01-01 00:00:00 +0000 UT C

С внешнего интерфейса я могу получить метку времени в любом формат в зависимости от местоположения или зоны. Но в go lang я пытаюсь проанализировать любую временную метку и преобразовать ее в UT C для хранения в книге. Каков правильный способ обработки этого случая?

t, err := time.Parse(time.RFC3339, str)

if err != nil {
    fmt.Println(err)
}
fmt.Println(t)

1 Ответ

2 голосов
/ 07 апреля 2020

В качестве эталонного времени, используемого в макетах Go, указывается c время, Mon Jan 2 15:04:05 MST 2006. Чтобы определить свой собственный формат, запишите, как будет выглядеть отформатированное базовое время.

Поскольку MST равно GMT-0700, используйте вашу строку ref таким образом в первом аргументе.

package main

import (
    "fmt"
    "time"
)

func main() {

    // Parsing your custom time format by using the reference time in your format.
    t1, err := time.Parse(
             "Mon Jan 02 2006 15:04:05 GMT-0700",
             "Tue Apr 07 2020 11:17:47 GMT+0530")

    if err != nil {
        fmt.Println(err)
    }

    fmt.Println(t1.UTC())
}

Детская площадка Go

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