一尘不染

来自time.Time的意外输出

go

我只是通过跟随有关Udemy的教学视频开始学习Go的,我尝试按如下方式打印当前时间

import (
  "fmt" 
  "time"
)

func main(){
  t := time.Now()

  fmt.Println(t) 
}

我得到一个很长的文本作为输出如下

2018-07-04 12:03:07.2911671 +0800 +08 m=+0.002000201

我原本希望只在+0800其后加上a timeZone,这应该是结尾。预期的输出如下所示,也如本教程视频中所示。但是对我来说,结果的形式要长得多。

2018-07-04 12:03:07.2911671 +0530 IST

问题是,为什么同一个命令date.Now()在教师的程序和我的程序之间返回不同的格式?为什么没有设置特定的格式,不应该standardize/base返回一种格式?


阅读 209

收藏
2020-07-02

共1个答案

一尘不染

问题是,为什么同一条命令date.Now()在讲师的程序和我的程序之间返回不同的格式?

因为该教程是在Go 1.9发行之前创建的。从Go
1.9开始,单调时钟支持已添加到该time.Time结构中,从而增加了这些额外的字段。

对于正常使用,您应该始终使用Format函数输出时间,而不是输出原始数据。这将产生更有用的输出,并且可以防止将来对基础类型的任何添加。

2020-07-02