Golang - 时间格式奇怪的行为

时间:2017-04-02 02:10:45

标签: go datetime-format

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

所以而不是

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

如果我尝试使用

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

结果错了。即使它是相同的格式,只需数字更改

package main

import (
    "fmt"
    "time"
)


func main() {

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

}

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

1 个答案:

答案 0 :(得分:5)

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

  

func(时间)格式

     

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

     

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

     

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

     如果是值,将显示

;

所以你必须使用参考时间。你不应该把它改成另一个时间。