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 GetStringToTime(ti string) (time.Time, error) { t := time.Now() //当前时间 t.Unix() //时间戳 st, err := time.Parse("2006-01-02", ti) //string转time if err != nil { return time.Time{}, err } return st, nil } // 获取日期 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 TimeToStr(tm int64) string { timeLayout := "2006-01-02 15:04:05" // time.Unix的第二个参数传递0或10结果一样,因为都不大于1e9 timeStr := time.Unix(tm, 0).Format(timeLayout) return timeStr } func TimeToInt64(tm, timeLayout string) (int64, error) { //fmt.Println("inDate = ", inDate) stamp, err := time.ParseInLocation(timeLayout, tm, time.Local) if err != nil { return 0, err } sr := stamp.Unix() return sr, 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() - 8*3600, 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 }