| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 | package libimport (	"errors"	"math/rand"	"regexp"	"strings"	"time")// #取得随机字符串:通过打乱slice来操作func GetRandstring(length int, char string, rand_x int64) string {	if length < 1 {		return ""	}	if len(char) <= 6 || len(char) <= length {		char = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"	}	charArr := strings.Split(char, "")	ran := rand.New(rand.NewSource(time.Now().UnixMilli() + rand_x))	l := len(charArr)	for i := l - 1; i > 0; i-- {		r := ran.Intn(i)		charArr[r], charArr[i] = charArr[i], charArr[r]	}	rchar := charArr[:length]	return strings.Join(rchar, "")}// 检查日期格式func IsDateStr(date string) bool {	if _, err := time.Parse("2006-01-02", date); err != nil {		return false	}	return true}// 转化func TimeStrToTime(T_time string) (time.Time, bool) {	if len(T_time) == 19 {		stamp, err := time.ParseInLocation("2006-01-02 15:04:05", T_time, time.Local) // +8		if err != nil {			return time.Time{}, false		}		return stamp, true	}	stamp, err := time.ParseInLocation("2006-01-02 15:04", T_time, time.Local) // +8	if err != nil {		return time.Time{}, false	}	return stamp, true}func ParseTime(T_time string) time.Time {	stamp, err := time.ParseInLocation("2006-01-02 15:04:05", T_time, time.Local) // +8	if err != nil {		return time.Time{}	}	return stamp}func ReplaceSeconds(timeStr string) (string, error) {	length := len(timeStr)	if length < 2 {		return "", errors.New("时间格式不正确")	}	lastTwoDigits := timeStr[length-2:]	if lastTwoDigits == "00" {		return timeStr, nil	}	t, err := time.Parse("2006-01-02 15:04:05", timeStr)	if err != nil {		return "", err	}	roundedTime := t.Truncate(time.Minute) // 将时间截断到分钟级别	roundedTimeString := roundedTime.Format("2006-01-02 15:04:00")	return roundedTimeString, nil}// 判断字符串是否为纯数字func IsNumeric(str string) bool {	// 定义一个正则表达式来匹配纯数字字符串	re := regexp.MustCompile(`^\d+$`)	return re.MatchString(str)}func SubtractStringLists(list1, list2 []string) []string {	// Create a map to store elements of list2 for fast lookup	excludeMap := make(map[string]bool)	for _, item := range list2 {		excludeMap[item] = true	}	// Initialize the result slice with elements not present in list2	var result []string	for _, item := range list1 {		if !excludeMap[item] {			result = append(result, item)		}	}	return result}
 |