Подтвердить что ты не робот

Как разобрать миллисекунду-временную строку timestamp в Go?

У меня есть строка с миллисекундами с эпохи (она исходила из вызова java.lang.System.currentTimeMillis()). Каким образом можно преобразовать эту строку в удобочитаемую строку метки времени в Go?

Глядя на пакет времени, я вижу функцию Parse, но все макеты, похоже, являются обычными часовыми временами. Однажды в объект времени я могу использовать Format(Time.Stamp), чтобы получить результат, который я хочу, но я не понимаю, как получить строку в объект Time.

4b9b3361

Ответ 1

Строка формата не поддерживает миллисекунды с эпохи, поэтому вам нужно вручную разобрать. Например:

func msToTime(ms string) (time.Time, error) {
    msInt, err := strconv.ParseInt(ms, 10, 64)
    if err != nil {
        return time.Time{}, err
    }

    return time.Unix(0, msInt*int64(time.Millisecond)), nil
}

Откроется http://play.golang.org/p/M1dWGLT8XE, чтобы воспроизвести пример в реальном времени.