go - 如何使用time.Parse解析hh :mm format in Go

标签 go time

我正在导入格式的很多字段:

上午 09:02
上午 10:02
中午 12:30
下午 04:10
下午 04:50
下午 5:30

我想将这些字段转换成我可以对其进行算术运算的东西。例如,对事件发生的时间进行倒计时。因此,以微秒……甚至秒为单位保存字段。 我一直在努力争取时间。解析工作...没有快乐。

fmt.Println(time.Parse("hh:mm", m.Feed.Entry[i].GsxA100Time.T))

返回...

0001-01-01 00:00:00 +0000 UTC parsing time "07:50 PM" as "hh:mm": cannot parse "07:50 PM" as "hh:mm"

有什么建议吗?

最佳答案

time.Parse 的布局字符串不处理 "hh:mm" 格式。在您的情况下,布局字符串更像是 "03:04 PM",如您在 the documentation 中所见。 .

要在解析字符串后获得 time.Duration,您可以用引用时间减去您的时间,在您的情况下,我假设 "12:00 AM" .

工作示例:

package main

import (
    "fmt"
    "time"
)

func main() {
    ref, _ := time.Parse("03:04 PM", "12:00 AM")
    t, err := time.Parse("03:04 PM", "11:22 PM")
    if err != nil {
        panic(err)
    }

    fmt.Println(t.Sub(ref).Seconds())
}

输出:

84120

Playground

关于go - 如何使用time.Parse解析hh :mm format in Go,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44924628/

相关文章:

parsing - 解析 Golang 变量

sql - Go 模板用于连接 slice 中的查询

datetime - 如何查找列中的最高(最新)和最低(最早)日期?

r - 在 R 中将月份转换为季度

python - 选择排序比冒泡排序慢?

Golang 解释 gdb SIGILL,非法指令

json - Reflect vs Regex 检查 Golang 中的空 JSON 数组属性

time - 从经纬度粗略估计格林威治标准时间的时间偏移

android - Android 上的时光倒流

iOS:是否可以在不依赖在线服务或 iOS 日期设置的情况下检查当前的 gmt 时间?