【发布时间】:2011-08-18 15:13:06
【问题描述】:
在 Go 中获取当前时间戳并转换为字符串的最佳方法是什么?我需要日期和时间,例如。 YYYYMMDDhhmmss 格式。
【问题讨论】:
-
这就是你所需要的golangprograms.com/…
在 Go 中获取当前时间戳并转换为字符串的最佳方法是什么?我需要日期和时间,例如。 YYYYMMDDhhmmss 格式。
【问题讨论】:
使用time.Now() 函数和time.Format() 方法。
t := time.Now()
fmt.Println(t.Format("20060102150405"))
打印出20110504111515,或者至少在几分钟前打印出来。 (我在东部夏令时间。)在时间包中定义的constants 中有几种预定义的时间格式。
如果您希望使用 UTC 而不是本地时区,则可以使用 time.Now().UTC()。
【讨论】:
Kitchen 常量 (= "3:04PM")
使用 time.Now() 和 time.Format() 函数(因为 time.LocalTime() 从 Go 1.0.3 开始不再存在)
t := time.Now()
fmt.Println(t.Format("20060102150405"))
Online demo(操场上的日期固定在过去,没关系)
【讨论】:
s := "Actual time is: "+time.Now().String()
为了可读性,最好使用 time 包中的 RFC 常量(我认为)
import "fmt"
import "time"
func main() {
fmt.Println(time.Now().Format(time.RFC850))
}
【讨论】:
Tuesday, 10-Nov-09 23:00:00 UTC RFC3339 = "2006-01-02T15:04:05Z07:00" play.golang.org/p/XmobwWSz5pN golang.org/pkg/time
time.Now().Format(time.RFC3339),样本输出:2021-08-19T13:52:51+03:00
对于来自 google 并正在寻找“timestamp in go”的人来说,所有其他响应都是非常错误的! YYYYMMDDhhmmss 不是“时间戳”。
要在 go 中获取日期的“时间戳”(从 1970 年 1 月开始的秒数),正确的函数是 .Unix(),它确实返回一个整数
【讨论】:
Get current time as formatted string in Go?。希望有人会批准它。
作为对@Bactisme 响应的回应,检索当前时间戳(例如以毫秒为单位)的方式是:
msec := time.Now().UnixNano() / 1000000
【讨论】:
要回答确切的问题:
import "github.com/golang/protobuf/ptypes"
Timestamp, _ = ptypes.TimestampProto(time.Now())
【讨论】:
【讨论】:
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"
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
【讨论】: