date_util.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // Package utils @Author gmy 2024/8/6 16:06:00
  2. package utils
  3. import (
  4. "fmt"
  5. "strings"
  6. "time"
  7. )
  8. // ParseDateAndWeek parseDateAndWeek 解析日期并计算当前周数
  9. func ParseDateAndWeek(dateText string) (string, error) {
  10. // 解析日期
  11. reportDate, err := time.Parse("2006-01-02", strings.TrimSpace(strings.Split(dateText, " ")[0]))
  12. if err != nil {
  13. return "", fmt.Errorf("failed to parse report date: %v", err)
  14. }
  15. // 计算年份和周数
  16. year, week := reportDate.ISOWeek()
  17. // 获取年份的后两位
  18. shortYear := year % 100
  19. targetWeek := fmt.Sprintf("%02d年第%d周", shortYear, week)
  20. return targetWeek, nil
  21. }
  22. // GetCurrentTime 获取当前时间 格式为 2024-08-07 15:29:58
  23. func GetCurrentTime() string {
  24. return time.Now().Format("2006-01-02 15:04:05")
  25. }
  26. // ConvertTimeFormat 转换时间格式 dateText 格式为 2024-08-03 07:53 --> 2024-08-03
  27. func ConvertTimeFormat(dateText string) (string, error) {
  28. // 解析日期
  29. reportDate, err := time.Parse("2006-01-02 15:04", strings.TrimSpace(dateText))
  30. if err != nil {
  31. return "", fmt.Errorf("failed to parse report date: %v", err)
  32. }
  33. return reportDate.Format("2006-01-02"), nil
  34. }