如何在Go中解析毫秒以来的时间戳字符串?

问题描述 投票:12回答:2

自纪元以来,我有一个毫秒数的字符串(它最初来自java.lang.System.currentTimeMillis()调用)。在Go中将此字符串转换为人类可读的时间戳字符串的正确方法是什么?

查看the time package,我看到了Parse功能,但是布局似乎都是基于正常时区的时间。一旦进入Time对象,就可以使用Format(Time.Stamp)获得所需的输出,但是我不清楚如何将字符串转换为Time对象。

string datetime go
2个回答
27
投票

自该时期以来,格式字符串不支持毫秒,因此您需要手动解析。例如:

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 } 进行现场演奏。


0
投票

使用http://play.golang.org/p/M1dWGLT8XE可以解决问题。

首先使用众所周知的关系time.Unix(ms/1000, 0)将ms-timestamp转换为unix-timestamp,然后将结果用作1 s = 1000 ms函数的第一个参数

© www.soinside.com 2019 - 2024. All rights reserved.