Mar*_*ekT 2 time timestamp go datetime-parsing
我正在从数据库中解析时间戳.我的布局如下:
layout = "2006-01-02 15:04:05.000000000 -0700 MST"
pipelineTS, err := time.Parse(layout, rawPipelineTS)
Run Code Online (Sandbox Code Playgroud)
问题是有时小数秒不是9位数,例如:
2018-12-18 15:25:08.73728596 +0000 UTC
Run Code Online (Sandbox Code Playgroud)
当它找到这样的值时,它就会出错.有想法该怎么解决这个吗?时间戳来自DB表.我需要它取任意数量的小数位数.
小数点后跟一个或多个零表示小数秒,打印到给定的小数位数.小数点后跟一个或多个9表示小数秒,打印到给定的小数位数,并删除尾随零.
使用nines而不是零来表示布局小数秒.
例如,
package main
import (
"fmt"
"time"
)
func main() {
layout := "2006-01-02 15:04:05.999999999 -0700 MST"
input := "2018-12-18 15:25:08.73728596 +0000 UTC" // 8 digits
t, err := time.Parse(layout, input)
fmt.Println(t, err)
input = "2018-12-18 15:25:08.7372 +0000 UTC" // 4 digits
t, err = time.Parse(layout, input)
fmt.Println(t, err)
input = "2018-12-18 15:25:08 +0000 UTC" // 0 digits
t, err = time.Parse(layout, input)
fmt.Println(t, err)
}
Run Code Online (Sandbox Code Playgroud)
游乐场:https://play.golang.org/p/j4WBmz3ENke
输出:
2018-12-18 15:25:08.73728596 +0000 UTC <nil>
2018-12-18 15:25:08.7372 +0000 UTC <nil>
2018-12-18 15:25:08 +0000 UTC <nil>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |