为了账号安全,请及时绑定邮箱和手机立即绑定

使用Go解析Go时间戳

使用Go解析Go时间戳

Go
函数式编程 2021-05-12 22:38:38
Go 用time.Now().String()作为2012-12-18 06:09:18.6155554 +0200 FLEST或者2009-11-10 23:00:00 +0000 UTChttp://play.golang.org/p/8qwq9U_Ri5我该如何解析?我的猜测FLEST是Finland Latvian Estonian Standard Time ,我没有在这些国家,我想我可以得到所有种类的时区。我找不到一种统一的方法或模式来解析time.Parse
查看完整描述

3 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

尽管time.Parse()接受诸如的格式字符串2006-01-02 15:04:05 -0700 MST,但使用时间定义的常量之一可能会更简单。


const (

    ANSIC       = "Mon Jan _2 15:04:05 2006"

    UnixDate    = "Mon Jan _2 15:04:05 MST 2006"

    RubyDate    = "Mon Jan 02 15:04:05 -0700 2006"

    RFC822      = "02 Jan 06 15:04 MST"

    RFC822Z     = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone

    RFC850      = "Monday, 02-Jan-06 15:04:05 MST"

    RFC1123     = "Mon, 02 Jan 2006 15:04:05 MST"

    RFC1123Z    = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone

    RFC3339     = "2006-01-02T15:04:05Z07:00"

    RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"

    Kitchen     = "3:04PM"

    // Handy time stamps.

    Stamp      = "Jan _2 15:04:05"

    StampMilli = "Jan _2 15:04:05.000"

    StampMicro = "Jan _2 15:04:05.000000"

    StampNano  = "Jan _2 15:04:05.000000000"

)

如果您使用字符串作为存储或编码时间的方式(例如采用限制性编码格式),则可能需要考虑使用Unix time。这样,您可以只存储一个int64(或两个,如果您保留纳秒数)。


查看完整回答
反对 回复 2021-05-24
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

time.String文档提供了使用的格式:“ 2006-01-02 15:04:05.999999999 -0700 MST”。首先将使用相同的格式进行解析。

时区可能对您来说是个问题。如果必须解析您知道的时间是使用time.String生成的,但是是在其他时区生成的,则必须具有其他时区的zoneinfo。请参阅LoadLocation下的文档。如果您无法获取zoneinfo,无法在系统上安装它或无法冒险在某个新的未知时区失败,则time.String格式不适合您。您将必须获得其他格式的时间戳,或者从字符串中删除时区,并以修改后的格式解析修改后的字符串。


查看完整回答
反对 回复 2021-05-24
  • 3 回答
  • 0 关注
  • 275 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信