Getting timestamp from mongodb id

前端 未结 8 1753
误落风尘
误落风尘 2020-12-02 08:38

How do I get the timestamp from the MongoDB id?

8条回答
  •  Happy的楠姐
    2020-12-02 09:22

    If you need to get timestamp from MongoID in a GoLang:

    package main
    
    import (
        "fmt"
        "github.com/pkg/errors"
        "strconv"
    )
    
    const (
        mongoIDLength = 24
    )
    
    var ErrInvalidMongoID = errors.New("invalid mongoID provided")
    
    func main() {
        s, err := ExtractTimestampFromMongoID("5eea13924a04cb4b58fe31e3")
        if err != nil {
            fmt.Print(err)
            return
        }
    
        fmt.Printf("%T, %v\n", s, s)
    
        // convert to usual int
        usualInt := int(s)
    
        fmt.Printf("%T, %v\n", usualInt, usualInt)
    }
    
    func ExtractTimestampFromMongoID(mongoID string) (int64, error) {
        if len(mongoID) != mongoIDLength {
            return 0, errors.WithStack(ErrInvalidMongoID)
        }
    
        s, err := strconv.ParseInt(mongoID[0:8], 16, 0)
        if err != nil {
            return 0, err
        }
    
        return s, nil
    }
    

    Playground: https://play.golang.org/p/lB9xSCmsP8I

提交回复
热议问题