pkg/flake/flake.go (16 lines of code) (raw):

package flake import ( "strconv" "time" "github.com/davidnarayan/go-flake" ) func ParseFlakeID(id string) (time.Time, error) { num, err := strconv.ParseInt(id, 16, 64) if err != nil { return time.Time{}, err } seq := num & 0xFFFF num = num >> (flake.HostBits + flake.SequenceBits) createdAt := flake.Epoch.Add(time.Duration(num) * time.Millisecond).Add(time.Duration(seq) * time.Nanosecond) return createdAt, nil }