From 9afbb33640e8954b22f134e4b55d1f806003aeb3 Mon Sep 17 00:00:00 2001 From: king Date: Wed, 20 Apr 2022 16:50:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BB=8EID=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E7=94=9F=E6=88=90=E6=97=B6=E9=97=B4=E7=9A=84=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Go/source/idgen/DefaultIdGenerator.go | 4 ++++ Go/source/idgen/YitIdHelper.go | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/Go/source/idgen/DefaultIdGenerator.go b/Go/source/idgen/DefaultIdGenerator.go index e0d1e00..cb05185 100644 --- a/Go/source/idgen/DefaultIdGenerator.go +++ b/Go/source/idgen/DefaultIdGenerator.go @@ -87,3 +87,7 @@ func NewDefaultIdGenerator(options *IdGeneratorOptions) *DefaultIdGenerator { func (dig DefaultIdGenerator) NewLong() int64 { 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) +} diff --git a/Go/source/idgen/YitIdHelper.go b/Go/source/idgen/YitIdHelper.go index f096210..6226f60 100644 --- a/Go/source/idgen/YitIdHelper.go +++ b/Go/source/idgen/YitIdHelper.go @@ -2,6 +2,7 @@ package idgen import ( "sync" + "time" ) var singletonMutex sync.Mutex @@ -27,3 +28,7 @@ func NextId() int64 { return idGenerator.NewLong() } + +func ExtractTime(id int64) time.Time { + return idGenerator.ExtractTime(id) +}