function.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package utils
  2. import (
  3. "encoding/json"
  4. "fmt"
  5. "time"
  6. )
  7. // DateFormmat 格式化日期
  8. // 参数:
  9. // t - 日期字符串
  10. // format - 日期格式字符串(例如 "2006-01-02 15:04:05")
  11. // 返回值:
  12. // 格式化后的日期字符串
  13. func DateFormmat(t string, format string) string {
  14. return TimestampToString(StringToTimestamp(t, "006-01-02 15:04"), "2006-01-02")
  15. }
  16. // TimestampToString 将 Unix 时间戳转换为指定格式的时间字符串
  17. // 参数:
  18. // t - Unix 时间戳(秒级)
  19. // format - 时间格式字符串(例如 "2006-01-02 15:04:05")
  20. // 返回值:
  21. // 格式化后的时间字符串
  22. func TimestampToString(t int64, format string) string {
  23. t_obj := time.Unix(t, 0)
  24. return t_obj.Format(format)
  25. }
  26. // StringToTimestamp 将指定格式的时间字符串转换为 Unix 时间戳
  27. // 参数:
  28. // t - 时间字符串
  29. // format - 时间格式字符串(例如 "2006-01-02 15:04:05")
  30. // 返回值:
  31. // Unix 时间戳(秒级)
  32. func StringToTimestamp(t string, format string) int64 {
  33. t_obj, err := time.ParseInLocation(format, t, time.Local)
  34. if err != nil {
  35. return 0
  36. }
  37. return t_obj.Unix()
  38. }
  39. // Contains 检查切片中是否包含指定元素
  40. // 参数:
  41. // slice - 待检查的切片
  42. // item - 要查找的元素
  43. // 返回值:
  44. // 如果切片中包含指定元素,则返回 true;否则返回 false
  45. func Contains[T comparable](slice []T, item T) bool {
  46. for _, v := range slice {
  47. if v == item {
  48. return true
  49. }
  50. }
  51. return false
  52. }
  53. func StringJsonConvert[T comparable](jsonSt T) ([]byte, error) {
  54. // 将结构体转换为 JSON
  55. jsonData, err := json.Marshal(jsonSt)
  56. if err != nil {
  57. return []byte{}, fmt.Errorf("JSON 编码失败: %w", err)
  58. }
  59. // 去除转义字符的方法:先反序列化再序列化
  60. var temp interface{}
  61. if err = json.Unmarshal(jsonData, &temp); err != nil {
  62. return []byte{}, fmt.Errorf("JSON 反序列化失败: %w", err)
  63. }
  64. cleanJson, err := json.Marshal(temp)
  65. if err != nil {
  66. return []byte{}, fmt.Errorf("JSON 重新序列化失败: %w", err)
  67. }
  68. return cleanJson, nil
  69. }