feat: 新增全局偏移时间

This commit is contained in:
kercylan98 2023-06-26 19:08:33 +08:00
parent 2127978093
commit 6c4f59f1a0
1 changed files with 25 additions and 0 deletions

View File

@ -2,6 +2,13 @@ package offset
import "time" import "time"
var global *Time
func init() {
global = NewTime(0)
}
// NewTime 新建一个包含偏移的时间
func NewTime(offset time.Duration) *Time { func NewTime(offset time.Duration) *Time {
return &Time{offset: offset} return &Time{offset: offset}
} }
@ -11,14 +18,32 @@ type Time struct {
offset time.Duration offset time.Duration
} }
// SetOffset 设置时间偏移
func (slf *Time) SetOffset(offset time.Duration) { func (slf *Time) SetOffset(offset time.Duration) {
slf.offset = offset slf.offset = offset
} }
// Now 获取当前时间偏移后的时间
func (slf *Time) Now() time.Time { func (slf *Time) Now() time.Time {
return time.Now().Add(slf.offset) return time.Now().Add(slf.offset)
} }
// Since 获取当前时间偏移后的时间自从 t 以来经过的时间
func (slf *Time) Since(t time.Time) time.Duration { func (slf *Time) Since(t time.Time) time.Duration {
return slf.Now().Sub(t) return slf.Now().Sub(t)
} }
// SetGlobal 设置全局偏移时间
func SetGlobal(offset time.Duration) {
global.SetOffset(offset)
}
// Now 获取当前时间偏移后的时间
func Now() time.Time {
return global.Now()
}
// Since 获取当前时间偏移后的时间自从 t 以来经过的时间
func Since(t time.Time) time.Duration {
return global.Since(t)
}