diff options
Diffstat (limited to 'src/tai64.go')
-rw-r--r-- | src/tai64.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/tai64.go b/src/tai64.go new file mode 100644 index 0000000..d0d1432 --- /dev/null +++ b/src/tai64.go @@ -0,0 +1,23 @@ +package main + +import ( + "encoding/binary" + "time" +) + +const ( + TAI64NBase = uint64(4611686018427387914) + TAI64NSize = 12 +) + +type TAI64N [TAI64NSize]byte + +func Timestamp() TAI64N { + var tai64n TAI64N + now := time.Now() + secs := TAI64NBase + uint64(now.Unix()) + nano := uint32(now.UnixNano()) + binary.BigEndian.PutUint64(tai64n[:], secs) + binary.BigEndian.PutUint32(tai64n[8:], nano) + return tai64n +} |