| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package utils
- import (
- "encoding/json"
- "fmt"
- "time"
- )
- // TimestampToString 将 Unix 时间戳转换为指定格式的时间字符串
- // 参数:
- // t - Unix 时间戳(秒级)
- // format - 时间格式字符串(例如 "2006-01-02 15:04:05")
- // 返回值:
- // 格式化后的时间字符串
- func TimestampToString(t int64, format string) string {
- t_obj := time.Unix(t, 0)
- return t_obj.Format(format)
- }
- // StringToTimestamp 将指定格式的时间字符串转换为 Unix 时间戳
- // 参数:
- // t - 时间字符串
- // format - 时间格式字符串(例如 "2006-01-02 15:04:05")
- // 返回值:
- // Unix 时间戳(秒级)
- func StringToTimestamp(t string, format string) int64 {
- t_obj, err := time.ParseInLocation(format, t, time.Local)
- if err != nil {
- return 0
- }
- return t_obj.Unix()
- }
- // Contains 检查切片中是否包含指定元素
- // 参数:
- // slice - 待检查的切片
- // item - 要查找的元素
- // 返回值:
- // 如果切片中包含指定元素,则返回 true;否则返回 false
- func Contains[T comparable](slice []T, item T) bool {
- for _, v := range slice {
- if v == item {
- return true
- }
- }
- return false
- }
- func StringJsonConvert[T comparable](jsonSt T) ([]byte, error) {
- // 将结构体转换为 JSON
- jsonData, err := json.Marshal(jsonSt)
- if err != nil {
- return []byte{}, fmt.Errorf("JSON 编码失败: %w", err)
- }
- // 去除转义字符的方法:先反序列化再序列化
- var temp interface{}
- if err = json.Unmarshal(jsonData, &temp); err != nil {
- return []byte{}, fmt.Errorf("JSON 反序列化失败: %w", err)
- }
- cleanJson, err := json.Marshal(temp)
- if err != nil {
- return []byte{}, fmt.Errorf("JSON 重新序列化失败: %w", err)
- }
- return cleanJson, nil
- }
|