我已經寫在圍棋一些代碼,我試圖用最新的每週工作的基礎之上。 (它最後在r60下建成)。一切工作現在除了以下位:獲得Unix時間戳在Go語言(紀元以來的當前時間以秒計)
if t, _, err := os.Time(); err == nil {
port[5] = int32(t)
}
如何更新此任何意見與當前執行去工作?
我已經寫在圍棋一些代碼,我試圖用最新的每週工作的基礎之上。 (它最後在r60下建成)。一切工作現在除了以下位:獲得Unix時間戳在Go語言(紀元以來的當前時間以秒計)
if t, _, err := os.Time(); err == nil {
port[5] = int32(t)
}
如何更新此任何意見與當前執行去工作?
import "time"
...
port[5] = int32(time.Now().Unix())
另一個提示。 time.Now().UnixNano()
(godoc)自從時代以來會給你納秒。這不是嚴格的Unix時間,但它使用相同的時代給予了亞秒精度,這可以很方便。
編輯:更改以匹配當前golang API
我知道我正在復活一箇舊線程,但我想知道...... Python清楚地記錄了它在不同平臺上獲得精確時間時遇到的問題。請參閱http://docs.python.org/2/library/time.html並搜索「精確度」。重點是:這不是因爲你有一個float64,所有的小數都很重要。 Go的時間是如何實現的,我能相信這個納秒級精度有多少? – Niriel 2013-01-30 17:42:19
這不起作用,但是'time.Now()。UnixNano()'([reference](http://golang.org/pkg/time/#Time.UnixNano))。 – 2013-11-04 09:33:36
我相信這是在Go 1.0發佈之前,API改變了... – Nate 2013-11-25 05:54:05
如果你想把它當作string
只是通過strconv
將其轉換:
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
timestamp := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
fmt.Println(timestamp) // prints: 1436773875771421417
}
這是什麼意思?如果有人想將一個數字轉換爲一個字符串,他可以找到如何做到這一點。或者可能是我應該添加另一個答案:如果你想將它轉換爲bytearray,只需[] byte(...)? – 2016-06-20 06:15:19
@SalvadorDali其實這正是我需要的。繼續添加你的答案,將其轉換爲一個字節數組,如果你願意,我相信有人最終會來,並需要代碼。 – anon58192932 2016-06-24 21:18:09
好:)是解決我的問題 – pregmatch 2016-12-13 13:57:43
提醒:'Unix的()'返回值是'int64'類型。截斷「int64」類型的值以鍵入「int32」是[2038年問題]的示例(https://en.wikipedia.org/wiki/Year_2038_problem)。 – peterSO 2017-10-31 16:46:14
go1.9.2達爾文/ amd64這始終如一地返回:1969-12-31 19:00:00,大致相當於:time.Unix(0,0)。這沒有截斷。 – Breedly 2018-01-28 14:34:19