go - Go 中时间的格式化

标签 go

我有一个这样的围棋程序,

package main

import "fmt"
import "time"

func main() {
s := strconv.Itoa64(time.Nanoseconds())
fmt.Println(s)
}

在这里,在我的系统中,输出是 19 位纳秒。现在,我想在 7 到 12 纳秒之后得到像数字一样的时间。任何人都可以帮助 Go 怎么可能?

注意:我想要从 7 到 12 的数字,因为在我的系统中,它们之间的时间不同意味着其他数字相同,所以对我来说不需要。 并且不需要在 println 中进行格式化,因为我给出示例只是为了阐明我的代码。实际上,我将格式化时间用于另一个目的。我需要它在 s :=.

最佳答案

例如,

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

func Nanoseconds() int64

Nanoseconds reports the number of nanoseconds since the Unix epoch, January 1, 1970 00:00:00 UTC.

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

关于go - Go 中时间的格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8395466/

相关文章:

go - 为什么 go 编译器说结构不满足接口(interface)?

time - 在 Go 中将 UTC 时间转换为 "local"时间

mongodb - 在 go 中同时使用相同的 mgo session

go - 使用类似 bash 的环境变量引用插入字符串

go - 在 Go 中创建对象

mongodb - 与Mongo Atlas的连接可使用家庭无线功能,但不能使用电话连接

linux - Golang Mac OSX 为 Docker 机器构建

json - 在 config.json 文件中输入自定义类型值

sql - 使用 gorm golang 在多个表中进行动态列搜索

regex - gorilla Mux 正则表达式