下面的 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())
}
郎朗坤
TA贡献1921条经验 获得超9个赞
首先,你为什么要使用strconv
ifUnix
已经返回一个int64
?
其次,string(int)
转换不会像你认为的那样做。它在 Unicode 代码点(又名rune
s)和字符串之间进行转换。你需要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
- 2 回答
- 0 关注
- 242 浏览
添加回答
举报
0/150
提交
取消