时间戳中的“m”是什么以及如何获得没有“m”的时间戳?

问题描述 投票:0回答:2

在Go中,对于time.Now()获取时间戳尾随m = xx.xxxx ...,那m是什么意思?

如何在打印时删除它或是否有任何其他方式或功能来获取没有m的时间戳

例如: - 对于time.Now()获取输出=> 2009-11-10 23:00:00 +0000 UTC m = + 0.000000001

但我需要这样的输出=> 2009-11-10 23:00:00 +0000 UTC

go timestamp
2个回答
2
投票

我需要这样的输出=> 2009-11-10 23:00:00 +0000 UTC


Package time

导入“时间”

单调时钟

操作系统既提供“挂钟”,也可以改变时钟同步,而“单调时钟”则不然。一般规则是挂钟用于告知时间,单调时钟用于测量时间。而不是拆分API,在这个包中Time by Time.Now包含挂钟读数和单调时钟读数;后来的时间操作使用挂钟读数,但后来的时间测量操作,特别是比较和减法,使用单调时钟读数。

剥离单调时钟读数的规范方法是使用t = t.Round(0)。

func (Time) Round 1.1

func (t Time) Round(d Duration) Time

Round将舍入t的结果返回到d的最接近的倍数(从零时间开始)。中途值的舍入行为是向上舍入。如果d <= 0,Round返回t剥离任何单调时钟读数,否则不变。

func (Time) String

func (t Time) String() string

String返回使用格式字符串格式化的时间

如果时间具有单调时钟读数,则返回的字符串包括最终字段“m =±”,其中值是单调时钟读数,格式化为十进制秒数。


剥离单调时钟读取的规范方法是使用t = t.Round(0)

例如,

package main

import (
    "fmt"
    "time"
)

func main() {
    t := time.Now()
    fmt.Println(t)
    fmt.Println(t.Round(0))
}

游乐场:https://play.golang.org/p/nglDbs9IGdU

输出:

2009-11-10 23:00:00 +0000 UTC m=+0.000000001
2009-11-10 23:00:00 +0000 UTC

2
投票

所有你需要的是:

    time.Now().Truncate(0)

根据doc on time.String()

如果时间具有单调时钟读数,则返回的字符串包括最终字段“m =±”,其中值是单调时钟读数,格式化为十进制秒数。

而time.Truncate()godoc说:

Truncate将舍入t的结果返回到d的倍数(从零时间开始)。如果d <= 0,则Truncate返回t剥离任何单调时钟读数但不改变。

© www.soinside.com 2019 - 2024. All rights reserved.