我有以下程序:
window.addEventListener('beforeunload', () => {
socket.disconnect();
}
我希望将纪元时间打印为字符串。相反,我得到了:
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now().UnixNano() / int64(time.Millisecond)
nowString := string(now)
fmt.Println(nowString)
}
如何解决此错误?
答案 0 :(得分:0)
如果您使用此处示例中的time
的功能-https://gobyexample.com/time-formatting-parsing
也。如果您需要做的只是打印整数,则不必将其转换为字符串,而只需使用格式说明符即可:
func main() {
now := time.Now().UnixNano() / int64(time.Millisecond)
//now is an int64 as you may have observed
fmt.Printf("%d", now)
//or even fmt.Println(now)
}
答案 1 :(得分:0)
main.go
package main
import "fmt"
import "time"
func main() {
nanos := time.Now().UnixNano()
fmt.Println(time.Unix(0, nanos))
millis := nanos / 1000000
fmt.Println(millis)
}
答案 2 :(得分:0)
看看strconv。
软件包strconv实现与字符串之间的转换 基本数据类型的表示形式。
对于您来说,要将int64的数字转换为string,可能需要使用FormatInt,如下所示:
func FormatInt(i int64,base int)字符串
FormatInt返回给定基数中i的字符串表示形式, 2 <= base <=36。结果使用小写字母“ a”至“ z” 对于数字值> = 10。
convertedString := strconv.FormatInt(YOUR_NUMBER, 10)
这是Epoch (https://gobyexample.com/epoch),使用time包的示例:
func main() {
now := time.Now()
secs := now.Unix()
nanos := now.UnixNano()
fmt.Println(now)
millis := nanos / 1000000
fmt.Println(secs)
fmt.Println(millis)
fmt.Println(nanos)
fmt.Println(time.Unix(secs, 0))
fmt.Println(time.Unix(0, nanos))
}
输出:
$ go run epoch.go
2012-10-31 16:13:58.292387 +0000 UTC
1351700038
1351700038292
1351700038292387000
2012-10-31 16:13:58 +0000 UTC
2012-10-31 16:13:58.292387 +0000 UTC