在Go中以格式字符串获取当前时间?


Answers:


149

使用time.Now()功能和time.Format()方法。

t := time.Now()
fmt.Println(t.Format("20060102150405"))

打印出来20110504111515,或者至少是几分钟前。(我在美国东部夏令时)。在时间包中定义的常量中有几种预定义的时间格式。

time.Now().UTC()如果您希望使用UTC而非本地时区,则可以使用。


15
我绝对喜欢Kitchen常量(= "3:04PM"
tux21b,2011年

5
感谢您提供的信息。时间包如何通过传递“ 20060102150405”来知道我们所传递的内容,因为它不是时间包中的预定义常量之一?时间包(20060102150405)中该日期和时间的意义是什么?在我看来,这有点古怪,但是只要它能起作用,我想只要它在编码时不出错就没有关系。我想他们认为不适合为该格式提供常量并匹配字符串模式。
brianoh 2011年

9
@brianoh:见golang.org/pkg/time/#Constants它是时间“01/02下午3点04分05秒'06 -0700”由于每个部件具有不同数量的(1,2,3等),它可以根据数字确定所需的组件。
newacct 2011年

1
请注意,time.LocalTime()不再存在:请参阅下面的答案以兼容Go 1.0.3
Deleplace 2013年

71

对于来自Google并正在寻找“时间戳记”的人,所有其他响应都是非常令人误解的!YYYYMMDDhhmmss不是“时间戳”。

要获取日期的“时间戳记”(距离1970年1月的秒数),正确的函数是.Unix(),它实际上返回一个整数


8
我同意; 该问题的标题应为“当前日期”而不是“当前时间戳”
developerbmw

1
虽然晚了,我认为.Unix()应指向golang.org/pkg/time/#Time.Unix返回类型为Int64的。
–bornfree

尽管您在技术上是正确的,但我认为这些天很多编码人员将时间戳与“当前时间以某种格式化的方式”混为一谈,因此标题对大多数人来说同样是令人困惑的。
罗杰·希尔

我建议编辑- Get current time as formatted string in Go?。希望有人会批准它。
akki


32

使用time.Now()time.Format()函数(如time.LocalTime()不作为围棋1.0.3的存在了)

t := time.Now()
fmt.Println(t.Format("20060102150405"))

在线演示 (日期固定在操场上,没关系)


6
您可以简单地将其用作这样的字符串:s := "Actual time is: "+time.Now().String()
Michael



0

https://golang.org/src/time/format.go指定用于解析时间15用于小时,04用于分钟,05用于秒。

解析日期11JanJanuary是几个月,02MonMonday月日,2006为一年,当然MST对区

但是您也可以使用这种布局,我觉得这很简单。 "Mon Jan 2 15:04:05 MST 2006"

    const layout = "Mon Jan 2 15:04:05 MST 2006"
    userTimeString := "Fri Dec 6 13:05:05 CET 2019"

    t, _ := time.Parse(layout, userTimeString)
    fmt.Println("Server: ", t.Format(time.RFC850))
    //Server:  Friday, 06-Dec-19 13:05:05 CET

    mumbai, _ := time.LoadLocation("Asia/Kolkata")
    mumbaiTime := t.In(mumbai)
    fmt.Println("Mumbai: ", mumbaiTime.Format(time.RFC850))
    //Mumbai:  Friday, 06-Dec-19 18:35:05 IST

演示


-4

要回答确切的问题:

import "github.com/golang/protobuf/ptypes"

Timestamp, _ = ptypes.TimestampProto(time.Now())

感谢Suran,这在需要跨grpc发送时间戳的时候非常有用
rajeshk
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.