Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. package library
  2.  
  3. import "time"
  4.  
  5. var fakeTime time.Time
  6.  
  7. func SetFakeTime(t time.Time) {
  8. fakeTime = t
  9. }
  10.  
  11. func ResetFake() {
  12. fakeTime = time.Time{}
  13. }
  14.  
  15. // TimeNow ... 現在時刻(JST)を返す
  16. func TimeNow() time.Time {
  17. if !fakeTime.IsZero() {
  18. return fakeTime
  19. }
  20.  
  21. return ToJST(time.Now())
  22. }
  23.  
  24. // ToJST ... 時刻をJSTに変換する
  25. func ToJST(t time.Time) time.Time {
  26. jstloc := time.FixedZone("Asia/Tokyo", 9*60*60)
  27. jstTime := t.UTC().In(jstloc)
  28. return jstTime
  29. }
  30.  
  31. // TruncatedTime ... 日付以外を切り捨てた時刻を取得
  32. func TruncatedTime(t time.Time) time.Time {
  33. return t.Truncate(time.Hour).Add(-time.Duration(t.Hour()) * time.Hour)
  34. }
  35.  
  36. // TruncatedNow ... 今日の日付を取得
  37. func TruncatedNow() time.Time {
  38. return TruncatedTime(TimeNow())
  39. }
  40.  
  41. // TruncateUnix ... UnixTimeStampを切り捨て済みの日付に変換する
  42. func TruncateUnix(u int64) time.Time {
  43. t := time.Unix(u, 0)
  44. return TruncatedTime(t)
  45. }
  46.  
  47. // IsOverOffsetTime ... 現在時刻が基準時刻を過ぎているかどうか
  48. func IsOverOffsetTime(now time.Time, ot time.Duration) bool {
  49. ost := TruncatedNow().Add(ot)
  50. return now.After(ost)
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement