Ответ 1
import "time"
...
port[5] = int32(time.Now().Unix())
У меня есть код, написанный в Go, который я пытаюсь обновить, чтобы работать с последними еженедельными сборками. (Последняя была построена под номером r60). Теперь все работает, за исключением следующего бита:
if t, _, err := os.Time(); err == nil {
port[5] = int32(t)
}
Какие-нибудь рекомендации по обновлению этого для работы с текущей реализацией Go?
import "time"
...
port[5] = int32(time.Now().Unix())
Еще один совет. time.Now().UnixNano()
(godoc) даст вам наносекунды с эпохи. Это не строго Unix-время, но оно дает вам второстепенную точность с использованием той же эпохи, которая может быть удобной.
Изменить: Изменено для соответствия текущему golang api
Если вы хотите, чтобы он string
просто преобразовал его через strconv
:
package main
import (
"fmt"
"strconv"
"time"
)
func main() {
timestamp := strconv.FormatInt(time.Now().UTC().UnixNano(), 10)
fmt.Println(timestamp) // prints: 1436773875771421417
}