github.com/keysonZZZ/kmg@v0.0.0-20151121023212-05317bfd7d39/kmgTime/Nower.go (about) 1 package kmgTime 2 3 import "time" 4 5 type Nower interface { 6 Now() time.Time 7 } 8 9 type tDefaultNower struct{} 10 11 type FixedNower struct { 12 Time time.Time 13 } 14 15 var NowTime Nower = tDefaultNower{} 16 17 func GetDefaultNower() Nower { 18 return NowTime 19 } 20 21 func NowFromDefaultNower() time.Time { 22 return NowTime.Now() 23 } 24 25 func MysqlNowFromDefaultNower() string { 26 return NowTime.Now().Format(FormatMysql) 27 } 28 29 func MysqlUsNowFromDefaultNower() string { 30 return NowTime.Now().Format(FormatMysqlUs) 31 } 32 33 func NewFixedNower(time time.Time) Nower { 34 return FixedNower{time} 35 } 36 37 func SetFixNowFromString(s string) { 38 NowTime = NewFixedNower(MustParseAutoInDefault(s)) 39 } 40 41 func SetNowerToDefault() { 42 NowTime = tDefaultNower{} 43 } 44 45 func (nower tDefaultNower) Now() time.Time { 46 return time.Now().In(DefaultTimeZone) 47 } 48 49 func (nower FixedNower) Now() time.Time { 50 return nower.Time 51 }