Go 戈兰的时间安排

Go 戈兰的时间安排,go,Go,我知道我们需要使用time.time界面来显示Go中的日期 为了格式化,我们需要使用format函数 但是什么是有效的和不同的时间格式化程序。Golang中的时间?Golang规定了获取有效日期要遵循的不同标准 可在时间文件中找到。格式为: 预定义的布局ANSIC、UnixDate、RFC3339和其他描述了参考时间的标准和方便表示。有关参考时间的格式和定义的更多信息,请参阅ANSIC和本软件包定义的其他常量的文档 因此,在常数中: 要定义自己的格式,请按自己的方式写下参考时间;有关示例,请参

我知道我们需要使用time.time界面来显示Go中的日期

为了格式化,我们需要使用format函数


但是什么是有效的和不同的时间格式化程序。Golang中的时间?

Golang规定了获取有效日期要遵循的不同标准


可在时间文件中找到。格式为:

预定义的布局ANSIC、UnixDate、RFC3339和其他描述了参考时间的标准和方便表示。有关参考时间的格式和定义的更多信息,请参阅ANSIC和本软件包定义的其他常量的文档

因此,在常数中:

要定义自己的格式,请按自己的方式写下参考时间;有关示例,请参见ANSIC、StampMicro或Kitchen等常量的值。该模型是为了演示参考时间是什么样子的,以便格式和解析方法可以对一般时间值应用相同的转换

简而言之:您以所需格式编写参考时间
Mon Jan 2 15:04:05 MST 2006
,并将该字符串传递给time.format()


正如@Volker所说,请阅读文档并了解类型和接口之间的差异。

以防您需要自定义布局和/或难以使用内置布局

package main

import (
    "fmt"
    "time"
)

func main() {
  t := time.Now()
  fmt.Println(t.Format(time.Kitchen))

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

}
type Rtime struct {
    Year int
    Month int
    Day int
    Hour int
    Minute int
    Second int
    Nanosecond int
    Millisecond int
    Offset int
    OffsetString string
    Zone string
}

func (rt *Rtime) LocalNow() {
    t := time.Now()
    rt.Hour,rt.Minute,rt.Second = t.Clock()
    rt.Nanosecond = t.Nanosecond()
    rt.Millisecond = rt.Nanosecond / 1000000
    rt.Month = int(t.Month())
    rt.Day = t.Day()
    rt.Year = t.Year()
    rt.OffsetString = ""
    rt.Zone, rt.Offset = t.Local().Zone()
    if rt.Offset > 0 {
        rt.OffsetString = fmt.Sprintf("+%02d%02d",
            rt.Offset/(60*60),
            rt.Offset%(60*60)/60)
    } else {
        rt.OffsetString = fmt.Sprintf("%02d%02d",
            rt.Offset/(60*60),
            rt.Offset%(60*60)/60)
    }
}

str := fmt.Sprintf("%04d-%02d-%02d %02d:%02d:%02d.%03d %s %s  %d",
        rt.Year,rt.Month,rt.Day,rt.Hour,rt.Minute,rt.Second,
        rt.Millisecond,rt.Zone,rt.OffsetString,rt.Nanosecond)
fmt.Println(str)
输出

2021-06-06 09:21:54.949 EEST +0300  949861778

您可以创建自己的或使用定义的常量:为什么不阅读链接的全部文档?见该段。时间不是一个界面。谢谢沃克,我会读一读的。