首页 > 解决方案 > 在 Go 中如何处理没有日期的挂钟时间?

问题描述

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

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

import "time"

type Shift struct {
    StartTime  time.Time
    FinishTime time.Time
    // More fields
}

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

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

标签: datetimegotime

解决方案


为了有时间并省略有关日、月和年的其他信息,您可以使用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))

}

输出:

Date 2009-11-10 23:00:00 +0000 UTC m=+0.000000001
Time 23:00:00

推荐阅读