times.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package util
  2. import "time"
  3. var TimeLayout = "2006-01-02 15:04:05" //转化所需模板
  4. func DateTime2TimeStr(datatime string) int64 {
  5. loc, _ := time.LoadLocation("Local") //重要:获取时区
  6. theTime, _ := time.ParseInLocation(TimeLayout, datatime, loc) //使用模板在对应时区转化为time.time类型
  7. return theTime.Unix()
  8. }
  9. func TimeStr2DateTime(timestr int64, format string) string {
  10. return time.Unix(timestr, 0).Format(format)
  11. }
  12. // 获取相差时间(小时)
  13. func GetHourDiffer(start_time, end_time string) int64 {
  14. var hour int64
  15. t1, err := time.ParseInLocation(TimeLayout, start_time, time.Local)
  16. t2, err := time.ParseInLocation(TimeLayout, end_time, time.Local)
  17. if err == nil && t1.Before(t2) {
  18. diff := t2.Unix() - t1.Unix()
  19. hour = diff / 3600
  20. return hour
  21. } else {
  22. return hour
  23. }
  24. }
  25. // 获取相差时间(秒)
  26. func GetSecondDiffer(start_time, end_time string) int64 {
  27. var scond int64
  28. t1, err := time.ParseInLocation(TimeLayout, start_time, time.Local)
  29. t2, err := time.ParseInLocation(TimeLayout, end_time, time.Local)
  30. if err == nil && t1.Before(t2) {
  31. diff := t2.Unix() - t1.Unix()
  32. return diff
  33. } else {
  34. return scond
  35. }
  36. }