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

下面的 GO 代码有什么问题?我尝试了一个 GO 项目并部署在 Openshift 中,直到昨天一切都很好。突然从今天开始,时间包返回0


val,_ := strconv.ParseInt(string(time.Now().Unix()),10,64)

println("Time now in openshift :",time.Now().Second())

所以基本上这里的实际时间是“1969-12-31”。可能是 GO 中的错误。


九州编程
浏览 226回答 2
2回答

收到一只叮咚

绝对不需要手动将时间转换为字符串,time.Format 会为您完成此操作。或者,如果您想打印自纪元以来的秒数,只需使用%d动词,该动词明确用于打印 base10 十进制数 Run on playgroundpackage mainimport "fmt"import "time"func main() {    fmt.Printf("Hello, %s\n",time.Now().Format(time.RFC3339))    fmt.Printf("Seconds since epoch %d",time.Now().Unix())}

郎朗坤

首先,你为什么要使用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
打开App,查看更多内容
随时随地看视频慕课网APP