【问题标题】:Calculate the Closest Time Difference in HH:MM(am/pm) Format using Go使用 Go 计算 HH:MM(am/pm) 格式的最近时差
【发布时间】:2021-11-15 13:11:47
【问题描述】:

在计算从 PM 到 AM 的时间差时,我遇到了一点问题,反之亦然。例如:

ref, _ := time.Parse("03:04pm", "11:59pm")
t, _ := time.Parse("03:04am", "12:00am")

fmt.Println(t.Sub(ref).Minutes()) // Got -719, my expectation is 1 (minutes)

其实是这样,但我想得到最小的差异。

【问题讨论】:

  • time.Time 表示完整的日期和时间。您在同一天比较了两次。你想要的是从第二天开始的12:00am,但你根本没有指定一天。

标签: go


【解决方案1】:

你得到 -719 的原因是你没有提供日期信息,并且在第二次。Parse 你在模板中有错字。模板必须包含pm

time.Parse("03:04pm", "11:59pm") // 0000-01-01 23:59:00 +0000 UTC
time.Parse("03:04am", "12:00am") // 0000-01-01 12:00:00 +0000 UTC

您需要在模板中提供日期信息和pm

time.Parse("02 03:04pm", "01 11:59pm") // 0000-01-01 23:59:00 +0000 UTC
time.Parse("02 03:04pm", "02 12:00am") // 0000-01-02 00:00:00 +0000 UTC

见https://stackoverflow.com/a/69338568/12301864

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-12
    • 2021-02-17
    • 2013-04-11
    • 2011-07-16
    • 2012-09-18
    • 2023-03-10
    相关资源
    最近更新 更多