feat: times 包支持重置全局时间偏移量和获取当前全局时间偏移量
This commit is contained in:
parent
f03dd4ac4f
commit
707fc6c5de
|
@ -7,6 +7,7 @@ import (
|
||||||
|
|
||||||
var sourceLocation = time.Local
|
var sourceLocation = time.Local
|
||||||
var offsetLock sync.Mutex
|
var offsetLock sync.Mutex
|
||||||
|
var currentOffsetDuration time.Duration
|
||||||
|
|
||||||
// SetGlobalTimeOffset 设置全局时间偏移量
|
// SetGlobalTimeOffset 设置全局时间偏移量
|
||||||
func SetGlobalTimeOffset(offset time.Duration) {
|
func SetGlobalTimeOffset(offset time.Duration) {
|
||||||
|
@ -17,6 +18,7 @@ func SetGlobalTimeOffset(offset time.Duration) {
|
||||||
newOffset := currentOffset + int(offset.Seconds())
|
newOffset := currentOffset + int(offset.Seconds())
|
||||||
location := time.FixedZone("OFFSET", newOffset)
|
location := time.FixedZone("OFFSET", newOffset)
|
||||||
time.Local = location
|
time.Local = location
|
||||||
|
currentOffsetDuration = offset
|
||||||
}
|
}
|
||||||
|
|
||||||
// NowByNotOffset 获取未偏移的当前时间
|
// NowByNotOffset 获取未偏移的当前时间
|
||||||
|
@ -29,3 +31,18 @@ func NowByNotOffset() time.Time {
|
||||||
time.Local = offset
|
time.Local = offset
|
||||||
return now
|
return now
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// GetGlobalTimeOffset 获取全局时间偏移量
|
||||||
|
func GetGlobalTimeOffset() time.Duration {
|
||||||
|
offsetLock.Lock()
|
||||||
|
defer offsetLock.Unlock()
|
||||||
|
return currentOffsetDuration
|
||||||
|
}
|
||||||
|
|
||||||
|
// ResetGlobalTimeOffset 重置全局时间偏移量
|
||||||
|
func ResetGlobalTimeOffset() {
|
||||||
|
offsetLock.Lock()
|
||||||
|
defer offsetLock.Unlock()
|
||||||
|
time.Local = sourceLocation
|
||||||
|
currentOffsetDuration = 0
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue