I believe that if you are going to work with timestamps is better to do it in epoch stamps, so in GO epoch is type int64.
package main import ( "fmt" "time" "strconv" ) func main() { now := time.Now() nanos := now.UnixNano() bufferTimestamp := strconv.FormatInt(nanos, 10) fmt.Printf("bufferTimestamp value: %s\n", bufferTimestamp) timestamp, err := strconv.ParseInt(string(bufferTimestamp), 10, 64) if err != nil { fmt.Printf("Error: %d of type %T\n", timestamp, timestamp) panic(err) } else { fmt.Printf("Converted value: %d\n", timestamp) } }
By running this you will have an output like this.
$ go run test/convert_stringtoint64.go bufferTimestamp value 1556951794912716618 of type string Converted value 1556951794912716618 of type int64