Browse Source

添加从ID解析生成时间的方法

tags/v1.3.1
king 2 years ago
parent
commit
9afbb33640
2 changed files with 9 additions and 0 deletions
  1. +4
    -0
      Go/source/idgen/DefaultIdGenerator.go
  2. +5
    -0
      Go/source/idgen/YitIdHelper.go

+ 4
- 0
Go/source/idgen/DefaultIdGenerator.go View File

@@ -87,3 +87,7 @@ func NewDefaultIdGenerator(options *IdGeneratorOptions) *DefaultIdGenerator {
func (dig DefaultIdGenerator) NewLong() int64 { func (dig DefaultIdGenerator) NewLong() int64 {
return dig.SnowWorker.NextId() return dig.SnowWorker.NextId()
} }

func (dig DefaultIdGenerator) ExtractTime(id int64) time.Time {
return time.UnixMilli(id>>(dig.Options.WorkerIdBitLength+dig.Options.SeqBitLength) + dig.Options.BaseTime)
}

+ 5
- 0
Go/source/idgen/YitIdHelper.go View File

@@ -2,6 +2,7 @@ package idgen


import ( import (
"sync" "sync"
"time"
) )


var singletonMutex sync.Mutex var singletonMutex sync.Mutex
@@ -27,3 +28,7 @@ func NextId() int64 {


return idGenerator.NewLong() return idGenerator.NewLong()
} }

func ExtractTime(id int64) time.Time {
return idGenerator.ExtractTime(id)
}

Loading…
Cancel
Save