时间格式奇怪的行为

Tah*_*een 2 go datetime-format

这是更大代码的一部分。我有点困惑,如果我使用以下格式的任何其他数字,将导致错误的值。

所以代替

fmt.Println(time.Now().Format("2006-01-02 15:04:05-07:00"))
Run Code Online (Sandbox Code Playgroud)

如果我尝试使用

 fmt.Println(time.Now().Format("2006-01-02 12:04:05-04:00"))
Run Code Online (Sandbox Code Playgroud)

结果是错误的。即使是相同格式,也只是数字变化

package main

import (
    "fmt"
    "time"
)


func main() {

    fmt.Println(time.Now().Format("2006-01-02 15:04:05-07:00"))

}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是为什么会这样。格式内的数字没有任何意义。它们仅用于表示格式。

csh*_*shu 6

https://golang.org/pkg/time/

func(时间)格式

func(t Time)格式(布局字符串)字符串

Format返回根据布局格式化的时间值的文本表示形式,它通过显示 参考时间(定义为

Mon Jan 2 15:04:05 -0700 MST 2006

将显示是否为该值;

因此,您必须使用参考时间。您不应将其更改为其他时间。