2012-03-02 132 views

回答

94
import "time" 
... 
port[5] = int32(time.Now().Unix()) 
+0

好:)是解決我的問題 – pregmatch 2016-12-13 13:57:43

+3

提醒:'Unix的()'返回值是'int64'類型。截斷「int64」類型的值以鍵入「int32」是[2038年問題]的示例(https://en.wikipedia.org/wiki/Year_2038_problem)。 – peterSO 2017-10-31 16:46:14

+0

go1.9.2達爾文/ amd64這始終如一地返回:1969-12-31 19:00:00,大致相當於:time.Unix(0,0)。這沒有截斷。 – Breedly 2018-01-28 14:34:19

8

另一個提示。 time.Now().UnixNano()(godoc)自從時代以來會給你納秒。這不是嚴格的Unix時間,但它使用相同的時代給予了亞秒精度,這可以很方便。

編輯:更改以匹配當前golang API

+0

我知道我正在復活一箇舊線程,但我想知道...... Python清楚地記錄了它在不同平臺上獲得精確時間時遇到的問題。請參閱http://docs.python.org/2/library/time.html並搜索「精確度」。重點是:這不是因爲你有一個float64,所有的小數都很重要。 Go的時間是如何實現的,我能相信這個納秒級精度有多少? – Niriel 2013-01-30 17:42:19

+4

這不起作用,但是'time.Now()。UnixNano()'([reference](http://golang.org/pkg/time/#Time.UnixNano))。 – 2013-11-04 09:33:36

+1

我相信這是在Go 1.0發佈之前,API改變了... – Nate 2013-11-25 05:54:05

9

如果你想把它當作string只是通過strconv將其轉換:

package main 

import (
    "fmt" 
    "strconv" 
    "time" 
) 

func main() { 
    timestamp := strconv.FormatInt(time.Now().UTC().UnixNano(), 10) 
    fmt.Println(timestamp) // prints: 1436773875771421417 
} 
+0

這是什麼意思?如果有人想將一個數字轉換爲一個字符串,他可以找到如何做到這一點。或者可能是我應該添加另一個答案:如果你想將它轉換爲bytearray,只需[] byte(...)? – 2016-06-20 06:15:19

+4

@SalvadorDali其實這正是我需要的。繼續添加你的答案,將其轉換爲一個字節數組,如果你願意,我相信有人最終會來,並需要代碼。 – anon58192932 2016-06-24 21:18:09

相關問題