使用Go解析Go时间戳

Go 用

time.Now().String()

作为

2012-12-18 06:09:18.6155554 +0200 FLEST

或者

2009-11-10 23:00:00 +0000 UTC

http://play.golang.org/p/8qwq9U_Ri5

我该如何解析?

我的猜测FLESTFinland Latvian Estonian Standard Time ,我没有在这些国家,我想我可以得到所有种类的时区。我找不到一种统一的方法或模式来解析time.Parse


函数式编程
浏览 276回答 3
3回答

一只斗牛犬

尽管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(或两个,如果您保留纳秒数)。

蝴蝶刀刀

time.String文档提供了使用的格式:“ 2006-01-02 15:04:05.999999999 -0700 MST”。首先将使用相同的格式进行解析。时区可能对您来说是个问题。如果必须解析您知道的时间是使用time.String生成的,但是是在其他时区生成的,则必须具有其他时区的zoneinfo。请参阅LoadLocation下的文档。如果您无法获取zoneinfo,无法在系统上安装它或无法冒险在某个新的未知时区失败,则time.String格式不适合您。您将必须获得其他格式的时间戳,或者从字符串中删除时区,并以修改后的格式解析修改后的字符串。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go