为了账号安全,请及时绑定邮箱和手机立即绑定

Go中时间的格式

Go中时间的格式

Go
小唯快跑啊 2021-04-25 16:45:39
我有这样的围棋程序,package mainimport "fmt"import "time"func main() {s := strconv.Itoa64(time.Nanoseconds())fmt.Println(s)}在我的系统中,输出为19位纳秒。现在,我想在7到12纳秒之后得到像数字一样的时间。有人可以帮忙吗?注意:我想要7到12之间的数字,因为在我的系统中,它们之间的时间不同,这意味着其他数字相同,因此对我而言是不需要的。并且不需要在println内进行格式化,因为我仅举示例说明我的代码。实际上,我将格式化时间用于其他目的。我在s:=中需要它。
查看完整描述

3 回答

?
GCT1015

TA贡献1827条经验 获得超4个赞

s := strconv.Itoa64(time.Nanoseconds())[6:12]


查看完整回答
反对 回复 2021-05-10
?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

例如,


package main


import (

    "fmt"

    "strconv"

    "time"

)


func main() {

    s := strconv.Itoa64(time.Nanoseconds() / 1e7 % 1e6)

    fmt.Println(s)

}

此算法从右边开始算出数字8到13。对于19位整数,这等效于从左边开始计数的7到12位数字。对于19位数字1323154238948677000,这些是数字423894。


功能纳秒


func Nanoseconds()int64


纳秒报告自Unix时代(世界标准时间1970年1月1日00:00:00)以来的纳秒数。


在某个时间点,纳秒数将从19个有效数字增加到20个有效数字。因此,从左侧切掉有效数字的算法(例如[6:12])是错误的。


查看完整回答
反对 回复 2021-05-10
?
慕盖茨4494581

TA贡献1850条经验 获得超11个赞

从7到12提取数字很容易,字符串切片将达到目的:


s := strconv.Itoa64(time.Nanoseconds())

fmt.Println(s[6:12])

所以你明白了。


查看完整回答
反对 回复 2021-05-10
  • 3 回答
  • 0 关注
  • 252 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信