一個(gè)是golang生成的當(dāng)前時(shí)間戳,但是返回的是int64位的time.Now().Unix()一個(gè)是從數(shù)據(jù)庫(kù)中取出的的時(shí)間戳1470219268我要做時(shí)間比較[if time.Now().Unix() > 1470219268]。。。但是一直報(bào)錯(cuò) invalid operation: now - node.AlarmMax_SignTime (mismatched types int64 and int)我在網(wǎng)上找了許久,都沒(méi)有一個(gè)很好的辦法,比如講數(shù)據(jù)庫(kù)中的時(shí)間戳轉(zhuǎn)化為時(shí)間再對(duì)比,也不行。。。
2 回答

jeck貓
TA貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
在1.7.1下測(cè)試是可以比較的
func main() { if time.Now().Unix() > 1470219268 { fmt.Println("aaa") } }
沒(méi)有問(wèn)題。
而且從報(bào)錯(cuò)信息來(lái)看,也只是int64和int不能直接比較,做一下類(lèi)型轉(zhuǎn)換就行了。

楊魅力
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
從數(shù)據(jù)庫(kù)解析出來(lái)是定義的struct么?要是struct就把類(lèi)型換成int64 ,不是就 time.Now().Unix()>int64(1470219268)
另外 要是直接是time.Now().Unix()>int64(1470219268) go是不會(huì)報(bào)錯(cuò)的
你可能是定義了一個(gè)變量比如
a:=1470219268
time.Now().Unix()>a 這樣子會(huì)報(bào)錯(cuò) a默認(rèn)為int
要是這樣子
var a int64
a=1470219268
time.Now().Unix()>a 這樣子也是沒(méi)問(wèn)題的。
- 2 回答
- 0 關(guān)注
- 5252 瀏覽
添加回答
舉報(bào)
0/150
提交
取消