我想获得当前的时间价值。我发现this回答对我有用,但不知道为什么格式方法取值20060102150405
?与yyyyMMdd hhmmss
不一样。
答案 0 :(得分:3)
Go的格式独特,与您在其他语言中的格式不同。 Go没有使用传统格式来打印日期,而是使用参考日期20060102150405
,它似乎毫无意义但实际上有原因,因为它在Posix 1 2 3 4 5 6
命令中date
:
Mon Jan 2 15:04:05 -0700 MST 2006
0 1 2 3 4 5 6
时区为7
但位于中间位置,因此最终格式类似于1 2 3 4 5 7 6
。
strftime
格式转换,
有趣的历史参考:https://github.com/golang/go/issues/444
time
包也提供了方便的常量:
const (
ANSIC = "Mon Jan _2 15:04:05 2006"
UnixDate = "Mon Jan _2 15:04:05 MST 2006"
RubyDate = "Mon Jan 02 15:04:05 -0700 2006"
RFC822 = "02 Jan 06 15:04 MST"
RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone
RFC850 = "Monday, 02-Jan-06 15:04:05 MST"
RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST"
RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone
RFC3339 = "2006-01-02T15:04:05Z07:00"
RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00"
Kitchen = "3:04PM"
// Handy time stamps.
Stamp = "Jan _2 15:04:05"
StampMilli = "Jan _2 15:04:05.000"
StampMicro = "Jan _2 15:04:05.000000"
StampNano = "Jan _2 15:04:05.000000000"
)
您可以像这样使用它们:
t := time.Now()
fmt.Println(t.Format(time.ANSIC))
答案 1 :(得分:2)
请参阅https://golang.org/pkg/time/#pkg-constants现在是时间“01/02 03:04:05 PM '06 -0700”因为每个组件都有不同的编号(1,2,3等),所以可以从数字你想要的组件。
答案 2 :(得分:0)
20060102150405是日期和时间格式2006/01/02 15:04:05
package main
导入( “FMT” “时间” )
func main(){
date1 := time.Now().Format("2006/01/02 15:04")
fmt.Println(date1)//2009/11/10 23:00
date2 := time.Now().Format("20060102150405")
fmt.Println(date2)//20091110230000
}