在Go语言中获取当前时间戳并将其转换为字符串的最佳方法是什么?我需要日期和时间都是YYYYMMDDhhmmss格式。
kgqe7b3p1#
使用time.Now()函数和time.Format()方法。
time.Now()
time.Format()
t := time.Now() fmt.Println(t.Format("20060102150405"))
打印出20110504111515,或者至少几分钟前是这样的(我使用的是东部夏令时)。time包中定义的常量中有几种预定义的时间格式。如果您希望使用UTC而不是本地时区,则可以使用time.Now().UTC()。
20110504111515
time.Now().UTC()
3wabscal2#
所有其他的回应都是非常错误的a-对于来自谷歌的人来说,他们在寻找“时间戳”!YYYYMMDDhmmss不是“时间戳”。要在go中获取日期的“时间戳”(从1970年1月算起的秒数),正确的函数是Time.Unix(),它实际上返回一个整数
zbq4xfa03#
为了可读性,最好使用time包中的RFC常量(我认为)
import "fmt" import "time" func main() { fmt.Println(time.Now().Format(time.RFC850)) }
crcmnpdw4#
使用time.now()和time.format()函数(因为time.LocalTime()在Go语言1.0.3中已经不存在了)
Online demo(日期固定在过去的操场上,没关系)
bq3bfh9z5#
在此帖子中查找更多信息:Get current date and time in various format in golang这是你会发现的不同格式的味道:
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
vmdwslir6#
https://golang.org/src/time/format.go指定对于解析时间,15用于表示小时,04用于表示分钟,05用于表示秒。用于解析日期11、Jan、January表示月份,02、Mon、Monday表示月份中的日期,2006表示年份,当然MST表示区域但是您也可以使用这种布局,我发现它非常简单。"Mon Jan 2 15:04:05 MST 2006"
15
04
05
11
Jan
January
02
Mon
Monday
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
eqfvzcg87#
作为对@Bactisme响应的回应,检索当前时间戳(例如,以毫秒为单位)的方法是:
msec := time.Now().UnixNano() / 1000000
资源:https://gobyexample.com/epoch
z31licg08#
您可以简单地使用***strconv.Itoa(int(time.Now().Unix())***
dbf7pr2w9#
为了回答这个问题:
import "github.com/golang/protobuf/ptypes" Timestamp, _ = ptypes.TimestampProto(time.Now())
9条答案
按热度按时间kgqe7b3p1#
使用
time.Now()
函数和time.Format()
方法。打印出
20110504111515
,或者至少几分钟前是这样的(我使用的是东部夏令时)。time包中定义的常量中有几种预定义的时间格式。如果您希望使用UTC而不是本地时区,则可以使用
time.Now().UTC()
。3wabscal2#
所有其他的回应都是非常错误的a-对于来自谷歌的人来说,他们在寻找“时间戳”!YYYYMMDDhmmss不是“时间戳”。
要在go中获取日期的“时间戳”(从1970年1月算起的秒数),正确的函数是Time.Unix(),它实际上返回一个整数
zbq4xfa03#
为了可读性,最好使用time包中的RFC常量(我认为)
crcmnpdw4#
使用time.now()和time.format()函数(因为time.LocalTime()在Go语言1.0.3中已经不存在了)
Online demo(日期固定在过去的操场上,没关系)
bq3bfh9z5#
在此帖子中查找更多信息:Get current date and time in various format in golang
这是你会发现的不同格式的味道:
输出为:
vmdwslir6#
https://golang.org/src/time/format.go指定对于解析时间,
15
用于表示小时,04
用于表示分钟,05
用于表示秒。用于解析日期
11
、Jan
、January
表示月份,02
、Mon
、Monday
表示月份中的日期,2006
表示年份,当然MST
表示区域但是您也可以使用这种布局,我发现它非常简单。
"Mon Jan 2 15:04:05 MST 2006"
DEMO
eqfvzcg87#
作为对@Bactisme响应的回应,检索当前时间戳(例如,以毫秒为单位)的方法是:
资源:https://gobyexample.com/epoch
z31licg08#
您可以简单地使用***strconv.Itoa(int(time.Now().Unix())***
dbf7pr2w9#
为了回答这个问题: