times.go 706 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package utils
  2. import (
  3. "fmt"
  4. "time"
  5. "github.com/tal-tech/go-zero/core/timex"
  6. )
  7. type ElapsedTimer struct {
  8. start time.Duration
  9. }
  10. func NewElapsedTimer() *ElapsedTimer {
  11. return &ElapsedTimer{
  12. start: timex.Now(),
  13. }
  14. }
  15. func (et *ElapsedTimer) Duration() time.Duration {
  16. return timex.Since(et.start)
  17. }
  18. func (et *ElapsedTimer) Elapsed() string {
  19. return timex.Since(et.start).String()
  20. }
  21. func (et *ElapsedTimer) ElapsedMs() string {
  22. return fmt.Sprintf("%.1fms", float32(timex.Since(et.start))/float32(time.Millisecond))
  23. }
  24. func CurrentMicros() int64 {
  25. return time.Now().UnixNano() / int64(time.Microsecond)
  26. }
  27. func CurrentMillis() int64 {
  28. return time.Now().UnixNano() / int64(time.Millisecond)
  29. }