我有一个这样的围棋程序,
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() 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/