Investigamos por diferentes espacios para mostrarte la respuesta a tu problema, en caso de preguntas puedes dejarnos la inquietud y contestamos con mucho gusto, porque estamos para servirte.
Solo divídelo:
func makeTimestamp() int64
return time.Now().UnixNano() / int64(time.Millisecond)
Aquí hay un ejemplo que puede compilar y ejecutar para ver el resultado
package main
import (
"time"
"fmt"
)
func main()
a := makeTimestamp()
fmt.Printf("%d n", a)
func makeTimestamp() int64
return time.Now().UnixNano() / int64(time.Millisecond)
Como señala @Jono en la respuesta de @OneOfOne, la respuesta correcta debe tener en cuenta la duración de un nanosegundo. P.ej:
func makeTimestamp() int64
return time.Now().UnixNano() / (int64(time.Millisecond)/int64(time.Nanosecond))
La respuesta de OneOfOne funciona porque time.Nanosecond
pasa a ser 1
, y dividir por 1 no tiene efecto. No sé lo suficiente sobre go para saber qué probabilidades hay de que esto cambie en el futuro, pero para la respuesta estrictamente correcta, usaría esta función, no la respuesta de OneOfOne. Dudo que haya alguna desventaja de rendimiento ya que el compilador debería poder optimizar esto perfectamente bien.
Ver https://en.wikipedia.org/wiki/Dimensional_analysis
Otra forma de ver esto es que ambos time.Now().UnixNano()
y time.Millisecond
utilice las mismas unidades (nanosegundos). Mientras eso sea truela respuesta de OneOfOne debería funcionar perfectamente bien.
Mantenlo simple.
func NowAsUnixMilli() int64
return time.Now().UnixNano() / 1e6