在 Go 中获取当前时间戳并转换为 string 的最佳方法是什么?我需要日期和时间。YYYMMDDhmss 格式。
使用 time.Now()函数和 time.Format()方法。
time.Now()
time.Format()
t := time.Now() fmt.Println(t.Format("20060102150405"))
打印出了 20110504111515至少几分钟前打印出来了。(我在 UTC-4上)在时间包中定义的 常数中有几种预定义的时间格式。
20110504111515
如果希望使用 UTC 而不是本地时区,可以使用 time.Now().UTC()。
time.Now().UTC()
使用 时间,现在和 格式()函数(作为 time. LocalTime ()在 Go 1.0.3时不再存在)
在线演示 (日期固定在过去的操场上,没关系)
为了易读性,最好在时间包中使用 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
Https://golang.org/src/time/format.go 对于解析时间,15用于小时,04用于分钟,05用于秒。
15
04
05
对于解析日期 11,Jan,January表示月份,02,Mon,Monday表示月份的日期,2006表示年份,当然 MST表示区域
11
Jan
January
02
Mon
Monday
2006
MST
但是您也可以使用这个布局,我发现它非常简单
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
演示
您可以简单地使用 Strconv. Itoa (int (time. Now () . Unix ()))