Подтвердить что ты не робот

Получение метки времени Unix в языке Go (текущее время в секундах с эпохи)

У меня есть код, написанный в Go, который я пытаюсь обновить, чтобы работать с последними еженедельными сборками. (Последняя была построена под номером r60). Теперь все работает, за исключением следующего бита:

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

Какие-нибудь рекомендации по обновлению этого для работы с текущей реализацией Go?

4b9b3361

Ответ 1

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

Ответ 2

Еще один совет. time.Now().UnixNano() (godoc) даст вам наносекунды с эпохи. Это не строго Unix-время, но оно дает вам второстепенную точность с использованием той же эпохи, которая может быть удобной.

Изменить: Изменено для соответствия текущему golang api

Ответ 3

Если вы хотите, чтобы он string просто преобразовал его через strconv:

package main

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

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