在 golang 中,我还没有找到将 12 小时格式字符串时间转换为 24 小时格式的任何方法,如下所示:
07:05:45PM to 19:05:45
Run Code Online (Sandbox Code Playgroud)
我在下面尝试过使用布局
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)
Run Code Online (Sandbox Code Playgroud)
输出是:
07:05:45PM
Run Code Online (Sandbox Code Playgroud)
我一直在寻找与此类似的答案,但这并不能帮助每个人都使用整个布局。我找到了另一种语言的答案,但没有找到。
例如,
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))
}
Run Code Online (Sandbox Code Playgroud)
游乐场:https : //play.golang.org/p/Ypn2-lEF_Zs
输出:
07:05:45PM
19:05:45
Run Code Online (Sandbox Code Playgroud)
参考:打包时间
关键是要明白如何写layout论据。根据godoc,参考时间为layout:
Mon Jan 2 15:04:05 -0700 MST 2006
Run Code Online (Sandbox Code Playgroud)
日期的每个字符串元素都有一个与之相关的特定数值:
| 细绳 | 代表 |
|---|---|
| 1 或 01 或 1 月 | 月 |
| 2 或 02 | 每月的某一天 |
| 3 或 03 或 15 | 小时 |
| 4 或 04 | 分钟 |
| 5 或 05 | 第二 |
| 6 或 06 或 2006 | 年 |
| -0700 或 MST | 时区表示 |
| 下午 | 一天中的一段时间 |
您需要将此日期重写为您的格式作为解析布局。您只需要包含您需要的元素。所以只有小时、分钟、秒和 AM/PM 是重要的。参考时间15:04:05应写为03:04:05PM.
只需使用重写的时间作为布局参数:
Mon Jan 2 15:04:05 -0700 MST 2006
Run Code Online (Sandbox Code Playgroud)
输出:
19:05:45
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7041 次 |
| 最近记录: |