如何获取Go中的当前时间戳?

时间:2011-05-04 15:00:04

标签: timestamp go

在Go中获取当前时间戳并转换为字符串的最佳方法是什么?我需要例如日期和时间。 YYYYMMDDhhmmss格式。

8 个答案:

答案 0 :(得分:120)

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

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

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

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

答案 1 :(得分:56)

对于那些来自Google并且正在寻找"时间戳的人来说,所有其他回复都非常缺乏领先地位#34;! YYYYMMDDhhmmss不是"时间戳"。

获取"时间戳" go中的日期(1970年1月的秒数),正确的函数是.Unix(),它实际上返回一个整数

答案 2 :(得分:51)

为了便于阅读,最好在时间包中使用RFC常量(我认为)

import "fmt" 
import "time"

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

答案 3 :(得分:31)

使用time.Now()time.Format()函数(因为从Go 1.0.3开始,time.LocalTime()不再存在)

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

Online demo(过去在操场上修好了日期,没关系)

答案 4 :(得分:1)

作为对@ Bactisme的回应的回应,人们去检索当前时间戳(例如以毫秒为单位)的方式是:

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

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

答案 5 :(得分:1)

在此信息中查找更多信息:Get current date and time in various format in golang

这是您在上一篇文章中会发现的不同格式的味道:

enter image description here

答案 6 :(得分: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

DEMO

答案 7 :(得分:-7)

回答确切的问题:

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

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