下面的 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條經驗 獲得超5個贊
絕對不需要手動將時間轉換為字符串,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 關注
- 290 瀏覽
添加回答
舉報
0/150
提交
取消