2012-03-02 21 views

Respuesta

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

agradable :) que resolvió mi problema – pregmatch

+3

ALERTA: El 'Unix()' el valor de retorno es de tipo 'int64'. Truncar el tipo de valor 'int64' para escribir' int32' es un ejemplo del [Problema del año 2038] (https://en.wikipedia.org/wiki/Year_2038_problem). – peterSO

+0

go1.9.2 darwin/amd64 esto devuelve consistentemente: 1969-12-31 19:00:00, que es más o menos equivalente a: time.Unix (0, 0). Esto es sin truncamiento. – Breedly

8

Otro consejo. time.Now().UnixNano()(godoc) le dará nanosegundos desde la época. No es estrictamente el tiempo de Unix, pero le da una precisión de segundo segundo con la misma época, lo que puede ser útil.

Editar: Se ha cambiado para que coincida con golang actual API

+0

Sé que estoy resucitando un hilo antiguo, pero me pregunto ... Python claramente documenta los problemas que tiene para obtener un tiempo preciso en diferentes plataformas. Consulte http://docs.python.org/2/library/time.html y busque "precisión". El punto es: no es porque tengas un float64 que todos los decimales sean significativos. ¿Cómo se implementa el tiempo de Go? ¿Cuánto puedo confiar en esta precisión de nanosegundos? – Niriel

+4

Eso no funciona aquí, pero 'time.Now(). UnixNano()' ([reference] (http://golang.org/pkg/time/#Time.UnixNano)) lo hace. –

+1

Creo que esto fue antes de que Go 1.0 se liberara y la API cambiara ... – Nate

9

Si desea como string simplemente convertirlo a través strconv:

package main 

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

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

¿Cuál es el punto de esto? Si alguien quiere convertir un número en una cadena, puede encontrar cómo hacerlo. O puede ser que solo debería agregar otra respuesta: si quieres convertirlo a bytearray, simplemente haz [] byte (...)? –

+4

@SalvadorDali En realidad esto es exactamente lo que necesitaba. Continúa y agrega tu respuesta para convertirla a una matriz de bytes, si quieres, estoy seguro de que alguien vendrá con el tiempo y necesitará el código. – anon58192932

Cuestiones relacionadas