2011-05-04 275 views

回答

79

使用time.Now()函数和time.Format()方法。

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

打印出20110504111515,或至少它在几分钟前做了。 (我在东部夏令时。)在时间包中定义的constants中有几种预定义的时间格式。

如果您希望UTC比当地时区晚,则可以使用time.Now().UTC()

+10

我绝对喜欢'Kitchen'常数('=“3:04 PM”') – tux21b 2011-05-04 15:25:31

+3

感谢您的信息。时间包如何通过传递“20060102150405”知道,我们正在传递什么,因为它不是时间包中的预定义常量之一?时间包(20060102150405)中该日期和时间的重要性如何?这对我来说似乎有些古怪,但只要它有效,我认为只要我们在编码时不会出现错误就没有关系。我想他们认为不适合为该格式提供常量,并匹配字符串模式。 – brianoh 2011-05-05 03:20:13

+5

@brianoh:请参阅http://golang.org/pkg/time/#Constants现在是时间“01/02 03:04:05 PM '06 -0700”因为每个组件都有不同的编号(1,2,3等等),它可以根据数字确定你想要的组件。 – newacct 2011-05-05 06:38:21

31

使用time.Now()time.Format()功能

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

Online demo(带日期固定在过去的操场上,永远记(如time.LocalTime()不作为围棋1.0.3的存在了) )

+5

你可以简单地将它用作这样的字符串:''s:=“实际时间是:”+ time.Now()。String() ''' – Michael 2014-03-09 11:19:18

29

为了增强可读性,最好用的时间包中的RFC常数(我认为)

import "fmt" 
import "time" 

func main() { 
    fmt.Println(time.Now().Format(time.RFC850)) 
} 
+3

正是我所搜寻的。 – 2015-04-06 00:02:50

+1

这是怎么产生YYYYMMDDhhmmss? – Rod 2016-05-26 06:30:07

25

所有其他respons e对于来自谷歌并寻找“时间戳进去”的人非常错过! YYYYMMDDhhmmss不是“时间戳”。

要获得在旅途中日期的“时间戳”(从1970年1月的秒数),正确的功能.Unix(),它真的返回一个整数

+5

我同意;这个问题应该被称为“当前日期”而不是“当前时间戳” – developerbmw 2016-08-12 05:40:51

+1

尽管已经很晚了,我想.Unix()应该指向https://golang.org/pkg/time/#Time.Unix,它的返回类型是int64 。 – bornfree 2018-02-11 15:39:50

+0

你完全正确,更新 – Bactisme 2018-02-12 16:30:56

1

作为回声@ Bactisme的响应,方式一个会去检索当前时间戳(以毫秒为单位,例如)是:

msec := time.Now().UnixNano()/1000000 

资源:https://gobyexample.com/epoch

-3

要回答这个问题询问:

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

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