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

Unix 时间返回 0 或 GOLANG 中的一些小值

Unix 时间返回 0 或 GOLANG 中的一些小值

Go
九州编程 2021-12-07 19:46:12
下面的 GO 代码有什么问题?我尝试了一个 GO 项目并部署在 Openshift 中,直到昨天一切都很好。突然从今天开始,时间包返回0val,_ := strconv.ParseInt(string(time.Now().Unix()),10,64)println("Time now in openshift :",time.Now().Second())所以基本上这里的实际时间是“1969-12-31”。可能是 GO 中的错误。
查看完整描述

2 回答

?
收到一只叮咚

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

绝对不需要手动将时间转换为字符串,time.Format 会为您完成此操作。或者,如果您想打印自纪元以来的秒数,只需使用%d动词,该动词明确用于打印 base10 十进制数 Run on playground


package main


import "fmt"

import "time"


func main() {

    fmt.Printf("Hello, %s\n",time.Now().Format(time.RFC3339))

    fmt.Printf("Seconds since epoch %d",time.Now().Unix())

}


查看完整回答
反对 回复 2021-12-07
?
郎朗坤

TA贡献1921条经验 获得超9个赞

首先,你为什么要使用strconvifUnix已经返回一个int64

其次,string(int)转换不会像你认为的那样做。它在 Unicode 代码点(又名runes)和字符串之间进行转换。你需要strconv.Itoa在这里:

val, _ := strconv.ParseInt(strconv.FormatInt(time.Now().Unix(), 10), 10, 64)
println("Time now in openshift :", val)

http://play.golang.org/p/AC7Q84ZIMC


查看完整回答
反对 回复 2021-12-07
  • 2 回答
  • 0 关注
  • 224 浏览
慕课专栏
更多

添加回答

举报

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