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  }