package helper import ( "strconv" "time" ) func FormatDateTime(str string) string { date, err := strconv.ParseInt(str, 10, 64) if err != nil { return "" } return time.Unix(date, 0).Format("2006-01-02 15:04:05") } func FormatDate(str string) string { date, err := strconv.ParseInt(str, 10, 64) if err != nil { return "" } return time.Unix(date, 0).Format("2006-01-02") } // 获取当天开始时间戳 func GetTodayStartTimeStamp() int64 { var reserveTime time.Time // loc, _ := time.LoadLocation(time.Location.String()) date := time.Now().Format("2006-01-02") reserveTime, _ = time.ParseInLocation("2006-01-02", date, time.Local) return reserveTime.Unix() } // 获取当天结束时间戳 func GetTodayEndTimeStamp() int64 { var reserveTime time.Time // loc, _ := time.LoadLocation("Asia/Shanghai") date := time.Now().Format("2006-01-02") reserveTime, _ = time.ParseInLocation("2006-01-02 15:04:05", date+" 23:59:59", time.Local) return reserveTime.Unix() } // 获取本周开始时间戳 func GetWeekStartTimeStamp() int64 { var reserveTime time.Time now := time.Now() loc, _ := time.LoadLocation("Asia/Shanghai") offset := int(time.Monday - now.Weekday()) if offset > 0 { offset = -6 } weekStartDate := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, time.Local).AddDate(0, 0, offset) weekMonday := weekStartDate.Format("2006-01-02") reserveTime, _ = time.ParseInLocation("2006-01-02", weekMonday, loc) return reserveTime.Unix() } // 获取当月开始时间戳 func GetMonthStartTimeStamp() int64 { var reserveTime time.Time loc, _ := time.LoadLocation("Asia/Shanghai") date := time.Now().Format("2006-01") reserveTime, _ = time.ParseInLocation("2006-01", date, loc) return reserveTime.Unix() } // RFC3339ToCSTLayout convert rfc3339 value to china standard time layout func RFC3339ToCSTLayout(value string) (string, error) { var ( cst *time.Location ) var err error if cst, err = time.LoadLocation("Asia/Shanghai"); err != nil { panic(err) } ts, err := time.Parse(time.RFC3339, value) if err != nil { return "", err } return ts.In(cst).Format("2006-01-02 15:04:05"), nil } // 具体日期时间转时间戳 func DatetimeToUnix(value string) int64 { loc, _ := time.LoadLocation("Asia/Shanghai") reserveTime, _ := time.ParseInLocation("2006-01-02 15:04:05", value, loc) return reserveTime.Unix() }