首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Go解析Go时间戳

使用Go解析Go时间戳
EN

Stack Overflow用户
提问于 2012-12-31 04:10:42
回答 3查看 8.6K关注 0票数 10

Go打印时间

代码语言:javascript
运行
复制
time.Now().String()

作为

代码语言:javascript
运行
复制
2012-12-18 06:09:18.6155554 +0200 FLEST

代码语言:javascript
运行
复制
2009-11-10 23:00:00 +0000 UTC

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

我该如何解析它?

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

EN

回答 3

Stack Overflow用户

发布于 2012-12-31 04:37:40

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

代码语言:javascript
运行
复制
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 (或者两个,如果您保持纳秒的数量。

票数 12
EN

Stack Overflow用户

发布于 2012-12-31 04:23:19

代码语言:javascript
运行
复制
package 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上的源代码

票数 10
EN

Stack Overflow用户

发布于 2013-01-01 22:07:49

time.String的文档给出了它使用的格式:"2006-01-02 15:04:05.999999999 -0700MST“。一开始就是使用相同的格式进行解析。

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

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14094228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档