Go time.Time String () добавляет "+0000 +0000", почему? - PullRequest
0 голосов
/ 01 марта 2020

Я извлекаю время из Postgres БД.

Допустим, это:

2020-02-27 08:57:36.774147+00

Теперь я хочу записать его в вывод, как строка, и я делаю это так:

var myTime time.Time

fmt.Println(myTime.String())

В выводе он пишет что-то другое:

2020-02-27 08:57:36.774147 +0000 +0000

Мне нужно, чтобы это значение было таким же, потому что мне нужно запросить что-то еще с ним.


Парень с такой же проблемой: https://github.com/golang/go/issues/11712

1 Ответ

3 голосов
/ 01 марта 2020

Вам нужна функция time.Format. Замените «myTime.String ()» на «myTime.Format (layout)» с желаемым макетом в качестве аргумента (например, предварительно определенным «time.RFC3339» или форматом эталонного времени «2006-01-02 15: 04: 05.000000- 07 ").

go do c:

func (t Time) Format(layout string) string
    Format returns a textual representation of the time value formatted
    according to layout, which defines the format by showing how the reference
    time, defined to be

        Mon Jan 2 15:04:05 -0700 MST 2006

    would be displayed if it were the value; it serves as an example of the
    desired output. The same display rules will then be applied to the time
    value.

    A fractional second is represented by adding a period and zeros to the end
    of the seconds section of layout string, as in "15:04:05.000" to format a
    time stamp with millisecond precision.

    Predefined layouts ANSIC, UnixDate, RFC3339 and others describe standard and
    convenient representations of the reference time. For more information about
    the formats and the definition of the reference time, see the documentation
    for ANSIC and the other constants defined by this package.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...