登录
首页 >  Golang >  Go问答

使用`time.Parse()`在Go语言中解析带有逗号分隔的毫秒

来源:stackoverflow

时间:2024-03-14 09:48:29 196浏览 收藏

在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天golang学习网就整理分享《使用`time.Parse()`在Go语言中解析带有逗号分隔的毫秒》,聊聊,希望可以帮助到正在努力赚钱的你。

问题内容

我的日志的时间戳类似于“2020-05-08 22:02:00,845”。它们以逗号分隔毫秒,这就是造成 time.parse 问题的原因。我似乎不知道如何腾出时间。解析对此感到满意。以下是在 go 版本 go1.13.4 darwin/amd64 中产生错误的示例代码(以及下面链接的演示中);

package main

import (
    "time"
)

func main() {
    ts := "2020-05-08 22:02:00,845"
    _, err := time.parse("2006-01-02 15:04:05,000", ts)
    print(err.error())
}

运行该代码会产生此错误

parsing time "2020-05-08 22:02:00,845" as "2006-01-02 15:04:05,000": cannot parse "845" as ",000"

这里是 go 演示中代码的链接

那么解析这个的格式会是什么样子呢?感谢您的帮助。


解决方案


这是一个已提交的错误 here

行为记录如下:“小数秒是通过在布局字符串的秒部分末尾添加句点和零来表示的,如“15:04:05.000”中所示,以格式化毫秒精度的时间戳.

解决方法是将 "," 替换为 "."

主包

import (
    "time"
    "fmt"
    "strings"
)

func main() {
    ts := "2020-05-08 22:02:00,845"
    ts  =  strings.Replace(ts, ",", ".", -1)

    d, err := time.Parse("2006-01-02 15:04:05.000", ts)
    if err != nil{
        print(err.Error())
    }
    fmt.Println(d)
}

这里是 Playground

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>