如何将字符串时间转换为毫秒(hh:mm:ss.xxx)到time.Time?

时间:2017-09-06 08:00:43

标签: go

基本上我有时候喜欢这个字符串:

15:56:36.113

我想将其转换为time.Time

从我正在阅读的内容中,使用time.Parse()时我不能使用毫秒。

还有另一种方法可以将我的字符串转换为time.Time吗?

2 个答案:

答案 0 :(得分:2)

  

Package time

     

格式参考时间

     

小数点后跟一个或多个零表示小数   第二,打印到给定的小数位数。小数点   然后是一个或多个9代表一小部分,印刷   到给定的小数位数,删除尾随零。   解析(仅)时,输入可能包含小数秒字段   紧跟在秒字段之后,即使布局没有   表示它的存在。在这种情况下,小数点后跟一个   最大的一系列数字被解析为小数秒。

例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    t, err := time.Parse("15:04:05", "15:56:36.113")
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(t)

    fmt.Println(t.Format("15:04:05.000"))

    h, m, s := t.Clock()
    ms := t.Nanosecond() / int(time.Millisecond)
    fmt.Printf("%02d:%02d:%02d.%03d\n", h, m, s, ms)
}

输出:

0000-01-01 15:56:36.113 +0000 UTC
15:56:36.113
15:56:36.113

注意:Time类型的零值为0000-01-01 00:00:00.000000000 UTC

答案 1 :(得分:0)

package main

import (
    "fmt"
    "time"
)

func main() {
    s := "15:56:36.113"
    t,_ := time.Parse("15:04:05.000", s)

    fmt.Print(t)
}

输出:

0000-01-01 15:56:36.113 +0000 UTC

您可以在此处更多地使用它:https://play.golang.org/p/3A3e8zHQ8r