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

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

202113 次浏览

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

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

打印出了 20110504111515至少几分钟前打印出来了。(我在 UTC-4上)在时间包中定义的 常数中有几种预定义的时间格式。

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

使用 时间,现在格式()函数(作为 time. LocalTime ()在 Go 1.0.3时不再存在)

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

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

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

import "fmt"
import "time"


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

所有其他的反应是非常错过-领导的人来自谷歌和寻找“时间戳在去”!YYYMMDDhmss 不是“时间戳”。

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

作为@Bactisme 响应的回显,检索当前时间戳(例如,以毫秒为单位)的方法是:

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

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

来回答这个问题:

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


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

在这篇文章中找到更多的信息: 以不同的格式获取当前的日期和时间

这是你将发现的不同格式的一个尝试:

package main


import (
"fmt"
"time"
)


func main() {
currentTime := time.Now()
fmt.Println("Current Time in String: ", currentTime.String())
fmt.Println("MM-DD-YYYY : ", currentTime.Format("01-02-2006"))
fmt.Println("YYYY-MM-DD : ", currentTime.Format("2006-01-02"))
fmt.Println("YYYY.MM.DD : ", currentTime.Format("2006.01.02 15:04:05"))
fmt.Println("YYYY#MM#DD {Special Character} : ", currentTime.Format("2006#01#02"))
fmt.Println("YYYY-MM-DD hh:mm:ss : ", currentTime.Format("2006-01-02 15:04:05"))
fmt.Println("Time with MicroSeconds: ", currentTime.Format("2006-01-02 15:04:05.000000"))
fmt.Println("Time with NanoSeconds: ", currentTime.Format("2006-01-02 15:04:05.000000000"))
fmt.Println("ShortNum Month : ", currentTime.Format("2006-1-02"))
fmt.Println("LongMonth : ", currentTime.Format("2006-January-02"))
fmt.Println("ShortMonth : ", currentTime.Format("2006-Jan-02"))
fmt.Println("ShortYear : ", currentTime.Format("06-Jan-02"))
fmt.Println("LongWeekDay : ", currentTime.Format("2006-01-02 15:04:05 Monday"))
fmt.Println("ShortWeek Day : ", currentTime.Format("2006-01-02 Mon"))
fmt.Println("ShortDay : ", currentTime.Format("Mon 2006-01-2"))
fmt.Println("Short Hour Minute Second: ", currentTime.Format("2006-01-02 3:4:5"))
fmt.Println("Short Hour Minute Second: ", currentTime.Format("2006-01-02 3:4:5 PM"))
fmt.Println("Short Hour Minute Second: ", currentTime.Format("2006-01-02 3:4:5 pm"))
}

输出结果是:

Current Time in String:  2017-07-04 00:47:20.1424751 +0530 IST
MM-DD-YYYY :  07-04-2017
YYYY-MM-DD :  2017-07-04
YYYY.MM.DD :  2017.07.04 00:47:20
YYYY#MM#DD {Special Character} :  2017#07#04
YYYY-MM-DD hh:mm:ss :  2017-07-04 00:47:20
Time with MicroSeconds:  2017-07-04 00:47:20.142475
Time with NanoSeconds:  2017-07-04 00:47:20.142475100
ShortNum Month :  2017-7-04
LongMonth :  2017-July-04
ShortMonth :  2017-Jul-04
ShortYear :  17-Jul-04
LongWeekDay :  2017-07-04 00:47:20 Tuesday
ShortWeek Day :  2017-07-04 Tue
ShortDay :  Tue 2017-07-4
Short Hour Minute Second:  2017-07-04 12:47:20
Short Hour Minute Second:  2017-07-04 12:47:20 AM
Short Hour Minute Second:  2017-07-04 12:47:20 am

您可以简单地使用 Strconv. Itoa (int (time. Now () . Unix ()))