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
我该如何解析它?
我猜想FLEST
是指芬兰-拉脱维亚-爱沙尼亚标准时间
,但我不在这些国家,也可能会遇到各种时区。我找不到一种统一的方式或模式来使用time.Parse
进行解析。
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
我该如何解析它?
我猜想FLEST
是指芬兰-拉脱维亚-爱沙尼亚标准时间
,但我不在这些国家,也可能会遇到各种时区。我找不到一种统一的方式或模式来使用time.Parse
进行解析。
尽管time.Parse()
接受格式字符串(如2006-01-02 15:04:05 -0700 MST
),但使用time中定义的constants之一可能更简单。
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"
)
int64
(或两个,如果保留纳秒数)。"2012-12-18 06:09:18.6155554 +0200 FLEST"
进行解析 - 解析出错,无法将时间“2012-12-18 06:09:18.6155554 +0200 FLEST”解析为“2006-01-02 15:04:05 -0700 MST”:“无法将“FLEST”解析为“MST””。 - Maxpackage main
import (
"fmt"
"time"
)
func main() {
fmt.Println(time.Now())
date := "2009-11-10 23:00:00 +0000 UTC"
t, err := time.Parse("2006-01-02 15:04:05 -0700 MST", date)
if err != nil {
fmt.Println("parse error", err.Error())
}
fmt.Println(t.Format(time.ANSIC))
}
游乐场: http://play.golang.org/p/hvqBgtesLd
查看源代码: http://golang.org/src/pkg/time/format.go?s=15404:15450#L607
lib/time/zoneinfo.zip
的文件,其中“包含”了许多时区,但没有FLEST时区。但是我不明白为什么首先会打印出FLEST。 - topskip