如题,我们可能希望格式化时间精确到毫秒,可以这样做:

    start_time := time.Now()

    yyyyMMddHHmmss := start_time.Format("2006-01-02 15:04:05.000")

    fmt.Println(yyyyMMddHHmmss) // 输出 2022-11-19 19:29:12.115

你看到了吗?在格式化字符串的尾部加".000"表示精确到毫秒,后面的就截断了。

如何解析回time.Time类型?看下面:

    start_time_parsed, _ := time.ParseInLocation("2006-01-02 15:04:05", yyyyMMddHHmmss, time.Local)

    fmt.Println(start_time_parsed) // 输出 2022-11-19 19:29:12.115 +0800 CST

你可能注意到了,解析的时候格式化字符串的尾部不需要加".000"也能正确解析出精确的时间。