自纪元以来,我有一个毫秒数的字符串(它最初来自java.lang.System.currentTimeMillis()
调用)。在Go中将此字符串转换为人类可读的时间戳字符串的正确方法是什么?
查看the time package,我看到了Parse
功能,但是布局似乎都是基于正常时区的时间。一旦进入Time对象,就可以使用Format(Time.Stamp)
获得所需的输出,但是我不清楚如何将字符串转换为Time对象。
自该时期以来,格式字符串不支持毫秒,因此您需要手动解析。例如:
Format(Time.Stamp)
签出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可以解决问题。
首先使用众所周知的关系time.Unix(ms/1000, 0)
将ms-timestamp转换为unix-timestamp,然后将结果用作1 s = 1000 ms
函数的第一个参数