package tools import ( "encoding/json" "fmt" "github.com/gin-gonic/gin" "io/ioutil" "strconv" "time" ) func StringToInt64(e string) (int64, error) { return strconv.ParseInt(e, 10, 64) } func StringToInt(e string) (int, error) { return strconv.Atoi(e) } func GetCurrntTimeStr() string { NowTimeZone := time.FixedZone("CST", 8*3600) //time.Local, _ = time.LoadLocation("Asia/Chongqing") //timelocal := time.LoadLocation("Asia/Chongqing") //time.Local = timelocal //time.LoadLocation("Asia/Chongqing") //return time.Now().Local().Format("2006-01-02 15:04:05") return time.Now().In(NowTimeZone).Format("2006-01-02 15:04:05") } func SubTimeSecond(inDate string) int64 { NowTimeZone := time.FixedZone("CST", 8*3600) timeLayout := "2006-01-02 15:04:05" //转化所需模板 stamp, _ := time.ParseInLocation(timeLayout, inDate, time.Local) sr := stamp.Unix() timestamp := time.Now().In(NowTimeZone).Format("2006-01-02 15:04:05") now, _ := time.ParseInLocation(timeLayout, timestamp, time.Local) return now.Unix() - sr } //获取日期 func GetCurrntDateStr() string { NowTimeZone := time.FixedZone("CST", 8*3600) return time.Now().In(NowTimeZone).Format("2006-01-02") } func GetPayRemainingTime(inDate string) int64 { NowTimeZone := time.FixedZone("CST", 8*3600) timeLayout := "2006-01-02 15:04:05" //转化所需模板 //fmt.Println("inDate = ", inDate) stamp, _ := time.ParseInLocation(timeLayout, inDate, time.Local) sr := stamp.Unix() timestamp := time.Now().In(NowTimeZone).Format("2006-01-02 15:04:05") now, _ := time.ParseInLocation(timeLayout, timestamp, time.Local) fmt.Println("sr = ", sr) fmt.Println("timestamp", now.Unix()) return 900 - (now.Unix() - sr) } //输入日期减去当前日期 func InDateSubNow(inDate string) int64 { NowTimeZone := time.FixedZone("CST", 8*3600) timeLayout := "2006-01-02 15:04:05" //转化所需模板 //fmt.Println("inDate = ", inDate) stamp, _ := time.ParseInLocation(timeLayout, inDate, time.Local) sr := stamp.Unix() timestamp := time.Now().In(NowTimeZone).Format("2006-01-02 15:04:05") now, _ := time.ParseInLocation(timeLayout, timestamp, time.Local) return sr - now.Unix() } //输入日期相减得出天数 func DateSubDate(startDate string, endDate string) (float64, error) { timeLayout := "2006-01-02" //转化所需模板 start, err := time.ParseInLocation(timeLayout, startDate, time.Local) if err != nil { return 0, err } end, err := time.ParseInLocation(timeLayout, endDate, time.Local) if err != nil { return 0, err } return start.Sub(end).Hours(), nil } //加天数 func DateAdd(startDate string, num time.Duration) (string, error) { timeLayout := "2006-01-02" //转化所需模板 start, err := time.ParseInLocation(timeLayout, startDate, time.Local) if err != nil { return "", err } return start.Add(num).Format("2006-01-02"), nil } func GetCurrntTime() time.Time { NowTimeZone := time.FixedZone("CST", 8*3600) return time.Now().In(NowTimeZone) } func GetNowTimeStamp() int64 { return time.Now().Unix() } func GetTimeStamp(timeIn string) (int64, error) { tm2, err := time.Parse("2006-01-02 15:04:05", timeIn) if err != nil { return 0, err } return tm2.Unix(), nil } func StructToJsonStr(e interface{}) (string, error) { if b, err := json.Marshal(e); err == nil { return string(b), err } else { return "", err } } func GetBodyString(c *gin.Context) (string, error) { body, err := ioutil.ReadAll(c.Request.Body) if err != nil { fmt.Printf("read body err, %v\n", err) return string(body), nil } else { return "", err } } func JsonStrToMap(e string) (map[string]interface{}, error) { var dict map[string]interface{} if err := json.Unmarshal([]byte(e), &dict); err == nil { return dict, err } else { return nil, err } } func StructToMap(data interface{}) (map[string]interface{}, error) { dataBytes, err := json.Marshal(data) if err != nil { return nil, err } mapData := make(map[string]interface{}) err = json.Unmarshal(dataBytes, &mapData) if err != nil { return nil, err } return mapData, nil }