libString.go 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. package lib
  2. import (
  3. "errors"
  4. "math/rand"
  5. "regexp"
  6. "strings"
  7. "time"
  8. )
  9. // #取得随机字符串:通过打乱slice来操作
  10. func GetRandstring(length int, char string, rand_x int64) string {
  11. if length < 1 {
  12. return ""
  13. }
  14. if len(char) <= 6 || len(char) <= length {
  15. char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
  16. }
  17. charArr := strings.Split(char, "")
  18. ran := rand.New(rand.NewSource(time.Now().UnixMilli() + rand_x))
  19. l := len(charArr)
  20. for i := l - 1; i > 0; i-- {
  21. r := ran.Intn(i)
  22. charArr[r], charArr[i] = charArr[i], charArr[r]
  23. }
  24. rchar := charArr[:length]
  25. return strings.Join(rchar, "")
  26. }
  27. // 检查日期格式
  28. func IsDateStr(date string) bool {
  29. if _, err := time.Parse("2006-01-02", date); err != nil {
  30. return false
  31. }
  32. return true
  33. }
  34. // 转化
  35. func TimeStrToTime(T_time string) (time.Time, bool) {
  36. stamp, err := time.ParseInLocation("2006-01-02 15:04:05", T_time, time.Local) // +8
  37. if err != nil {
  38. return time.Time{}, false
  39. }
  40. return stamp, true
  41. }
  42. func ParseTime(T_time string) time.Time {
  43. stamp, err := time.ParseInLocation("2006-01-02 15:04:05", T_time, time.Local) // +8
  44. if err != nil {
  45. return time.Time{}
  46. }
  47. return stamp
  48. }
  49. func ReplaceSeconds(timeStr string) (string, error) {
  50. length := len(timeStr)
  51. if length < 2 {
  52. return "", errors.New("时间格式不正确")
  53. }
  54. lastTwoDigits := timeStr[length-2:]
  55. if lastTwoDigits == "00" {
  56. return timeStr, nil
  57. }
  58. t, err := time.Parse("2006-01-02 15:04:05", timeStr)
  59. if err != nil {
  60. return "", err
  61. }
  62. roundedTime := t.Truncate(time.Minute) // 将时间截断到分钟级别
  63. roundedTimeString := roundedTime.Format("2006-01-02 15:04:00")
  64. return roundedTimeString, nil
  65. }
  66. // 判断字符串是否为纯数字
  67. func IsNumeric(str string) bool {
  68. // 定义一个正则表达式来匹配纯数字字符串
  69. re := regexp.MustCompile(`^\d+$`)
  70. return re.MatchString(str)
  71. }
  72. func SubtractStringLists(list1, list2 []string) []string {
  73. // Create a map to store elements of list2 for fast lookup
  74. excludeMap := make(map[string]bool)
  75. for _, item := range list2 {
  76. excludeMap[item] = true
  77. }
  78. // Initialize the result slice with elements not present in list2
  79. var result []string
  80. for _, item := range list1 {
  81. if !excludeMap[item] {
  82. result = append(result, item)
  83. }
  84. }
  85. return result
  86. }