在golang中将12小时格式转换为24小时格式时间

时间:2018-04-25 03:19:06

标签: go

在golang中我没有找到任何方法将12小时格式字符串时间转换为24小时格式,如下所示:

degree

我在下面尝试使用布局

07:05:45PM to 19:05:45

输出是:

layout := "Mon Jan 2 15:04:05 -0700 MST 2006"
/*
 * Write your code here.
 */
//layout := "3:04PM"
t,_ := time.Parse(layout,s)
fmt.Println(t)

我已经找到了与此类似的答案,但它并没有帮助每个人都使用整个布局。我用另一种语言找到了答案,但没有找到答案。

3 个答案:

答案 0 :(得分:2)

关键是要了解布局。参考时间布局Parse为:

Mon Jan 2 15:04:05 -0700 MST 2006

您需要将此日期重写为您的格式。您只需要根据需要包含元素。所以只有小时,分钟,秒和AM / PM很重要。参考时间15:04:05应写为03:04:05PM

只需使用重写时间作为布局参数:

t, _ := time.Parse("03:04:05PM", "07:05:45PM")
fmt.Println(t.Format("15:04:05"))

输出:

19:05:45

答案 1 :(得分:1)

例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    layout1 := "03:04:05PM"
    layout2 := "15:04:05"
    t, err := time.Parse(layout1, "07:05:45PM")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(t.Format(layout1))
    fmt.Println(t.Format(layout2))
}

游乐场:https://play.golang.org/p/Ypn2-lEF_Zs

输出:

07:05:45PM
19:05:45

参考:package time

答案 2 :(得分:0)

const (
    layoutDateTime   = "02 Jan 2006 15:04:05"
)

dateTimePM, _ := time.Parse(layoutDateTime + " PM", "07 Nov 2019 11:31:30 PM")
dateTimeAM, _ := time.Parse(layoutDateTime + " PM", "07 Nov 2019 11:31:30 AM")

这已成功正确地转换了两个AM,PM日期。