常用类型及数据操作方法
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

81 lines
1.8 KiB

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("Asia/Shanghai")
date := time.Now().Format("2006-01-02")
reserveTime, _ = time.ParseInLocation("2006-01-02", date, loc)
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
}