在 Go 中如何处理没有日期的挂钟时间?

Rob*_*ero 9 time datetime go

我想知道 Golang 中是否有任何现有的包可以处理没有日期的日期时间。

问题如下。想象一下,我想存储有关公司轮班的信息,包括轮班开始和结束的时间,我会创建如下内容:

import "time"

type Shift struct {
    StartTime  time.Time
    FinishTime time.Time
    // More fields
}
Run Code Online (Sandbox Code Playgroud)

问题是,字段 time.Time 还存储有关日、月和年的信息,这可能会在比较轮班时导致一些问题。

有没有像 Civil.Date ( https://pkg.go.dev/cloud.google.com/go/civil ) 这样的替代方案,但只是时间而不是日期?

小智 2

为了节省时间并省略有关年、月、日的其他信息,您可以使用Format()方法。我创建了一个示例程序,如下所示:

package main

import (
    "fmt"
    "time"
)

func main() {

    const (
        layoutTime = "15:04:05"
    )

    fmt.Println("Date", time.Now())
    fmt.Println("Time", time.Now().Format(layoutTime))

}
Run Code Online (Sandbox Code Playgroud)

输出:

Date 2009-11-10 23:00:00 +0000 UTC m=+0.000000001
Time 23:00:00
Run Code Online (Sandbox Code Playgroud)