web-dev-qa-db-ja.com

Go言語でUnixタイムスタンプを取得する(エポックからの現在の秒数)

Goで記述されたいくつかのコードを更新し、最新の毎週のビルドで動作するようにしています。 (最後にr60で構築されました)。現在、次のビットを除いてすべてが機能しています。

 if t, _, err := os.Time(); err == nil {
   port[5] = int32(t)
 }

現在のGo実装で動作するようにこれを更新する方法に関するアドバイスはありますか?

69
crc
import "time"
...
port[5] = int32(time.Now().Unix())
139
user811773

stringとして使用する場合は、strconvで変換します。

package main

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

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

別のヒント。 time.Now().UnixNano()(godoc) は、エポック以降のナノ秒を提供します。厳密にはUnix時間ではありませんが、同じエポックを使用して1秒未満の精度を提供します。これは便利です。

編集:現在のgolang apiに一致するように変更

12
Nate