gpt4 book ai didi

datetime - 返回一天时间对象的本地开始时间

转载 作者:IT老高 更新时间:2023-10-28 13:02:55 30 4
gpt4 key购买 nike

为了获取今天时间对象的本地开始,我提取 YMD 并重建新日期。这看起来像一个杂物。我错过了其他一些标准库函数吗?

代码也可以在 http://play.golang.org/p/OSRl0nxyB7 运行:

func Bod(t time.Time) time.Time {
year, month, day := t.Date()
return time.Date(year, month, day, 0, 0, 0, 0, t.Location())
}

func main() {
fmt.Println(Bod(time.Now()))
}

最佳答案

问题的标题和文本都要求“本地 [芝加哥] 从今天开始”。问题中的 Bod 函数正确地做到了这一点。 accepted Truncate function声称是一个更好的解决方案,但它返回不同的结果;它不会返回今天开始的本地 [芝加哥]。例如,

package main

import (
"fmt"
"time"
)

func Bod(t time.Time) time.Time {
year, month, day := t.Date()
return time.Date(year, month, day, 0, 0, 0, 0, t.Location())
}

func Truncate(t time.Time) time.Time {
return t.Truncate(24 * time.Hour)
}

func main() {
chicago, err := time.LoadLocation("America/Chicago")
if err != nil {
fmt.Println(err)
return
}
now := time.Now().In(chicago)
fmt.Println(Bod(now))
fmt.Println(Truncate(now))
}

输出:

2014-08-11 00:00:00 -0400 EDT
2014-08-11 20:00:00 -0400 EDT

time.Truncate 方法截断 UTC 时间。

accepted Truncate function还假设一天有 24 小时。芝加哥一天有 23、24 或 25 小时。

关于datetime - 返回一天时间对象的本地开始时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25254443/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com