time.go 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package main
  2. import (
  3. "fmt"
  4. "time"
  5. )
  6. var DateFmtYYYYMMDD = "2006-01-02"
  7. var DateFmtYYYYMMDDHHmmss = "2006-01-02 15:04:05"
  8. func main(){
  9. //设置全局时区为utc +8
  10. utcZone := time.FixedZone("UTC", 0)
  11. time.Local = utcZone
  12. //当前时间转 "2022-04-30"
  13. fmt.Println("当前时间转 2022-04-30")
  14. fmt.Println(time.Now().Format(DateFmtYYYYMMDD))
  15. //当前时间转 "2022-04-30 12:00:23"
  16. fmt.Println("当前时间转 2022-04-30 12:00:23")
  17. fmt.Println(time.Now().Format(DateFmtYYYYMMDDHHmmss))
  18. // "2022-04-30" 转 "2022-04-30 00:00:00 +0000 UTC"
  19. fmt.Println("2022-04-30 转 2022-04-30 00:00:00 +0000 UTC")
  20. time1 := "2022-04-30"
  21. time1Parse, _ := time.Parse(DateFmtYYYYMMDD, time1)
  22. fmt.Println(time1Parse,time1Parse.String())
  23. // "2022-04-30" 转 "2022-04-30 00:00:00 +0000 UTC"
  24. fmt.Println("2022-04-30 转 2022-04-30 00:00:00 +0000 UTC")
  25. time2 := "2022-04-30"
  26. time2Parse, _ := time.Parse(DateFmtYYYYMMDD, time2)
  27. fmt.Println(time2Parse,time2Parse.String())
  28. // "2022-04-30" 转 "2022-04-30 00:00:00 "
  29. fmt.Println("2022-04-30 转 2022-04-30 00:00:00")
  30. time3 := "2022-04-30"
  31. time3Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, fmt.Sprintf("%s 00:00:00", time3))
  32. time3Str := time3Parse.Format(DateFmtYYYYMMDDHHmmss)
  33. fmt.Println(time3Str)
  34. // 2022-04-30 02:00:00 与 2022-05-01 01:00:00 相差的小时数
  35. fmt.Println("2022-04-30 02:00:00 与 2022-05-01 01:00:00 相差的小时数 [23]")
  36. time4 := "2022-04-30 02:00:00"
  37. time5 := "2022-05-01 01:00:00"
  38. time4Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time4)
  39. time5Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time5)
  40. hour1Interval := time5Parse.Sub(time4Parse).Hours()
  41. fmt.Println(hour1Interval)
  42. // 2022-05-01 01:00:00 2022-04-30 02:00:00 相差的小时数(为负数)
  43. fmt.Println("2022-05-01 01:00:00 2022-04-30 02:00:00 相差的小时数(为负数)[-23]")
  44. time6 := "2022-04-30 02:00:00"
  45. time7 := "2022-05-01 01:00:00"
  46. time6Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time6)
  47. time7Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time7)
  48. hour2Interval := time6Parse.Sub(time7Parse).Hours()
  49. fmt.Println(hour2Interval)
  50. // 2022-04-30 02:00:00 与 2022-05-01 01:30:30 相差的时分秒
  51. fmt.Println("2022-04-30 02:00:00 与 2022-05-01 01:30:30 相差的时分秒 [23h30m30s]")
  52. time8 := "2022-04-30 02:00:00"
  53. time9 := "2022-05-01 01:30:30"
  54. time8Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time8)
  55. time9Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time9)
  56. hour3Interval := time9Parse.Sub(time8Parse).String()
  57. fmt.Println(hour3Interval)
  58. // 2022-04-30 的后一天
  59. fmt.Println("2022-04-30 的后一天")
  60. time10 := "2022-04-30"
  61. time10Parse, _ := time.Parse(DateFmtYYYYMMDD, time10)
  62. nextDay := time10Parse.AddDate(0,0,1)
  63. fmt.Println(nextDay)
  64. fmt.Println("2022-04-30 的前一天")
  65. beforeDay := time10Parse.AddDate(0,0,-1)
  66. fmt.Println(beforeDay)
  67. fmt.Println("2022-04-30 12:30:00 的后一天")
  68. time11 := "2022-04-30 12:30:00"
  69. time11Parse, _ := time.Parse(DateFmtYYYYMMDDHHmmss, time11)
  70. nextDay2 := time11Parse.AddDate(0,0,1)
  71. fmt.Println(nextDay2)
  72. fmt.Println("2022-04-30 12:30:00 的前一天")
  73. beforeDay2 := time11Parse.AddDate(0,0,-1)
  74. fmt.Println(beforeDay2)
  75. }