53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package utils
|
|
|
|
import (
|
|
"errors"
|
|
"time"
|
|
|
|
"go.uber.org/zap"
|
|
|
|
"micro-bundle/pkg/msg"
|
|
)
|
|
|
|
const (
|
|
DateTimeFormat = "2006-01-02 15:04:05"
|
|
DateFormat = "2006-01-02"
|
|
DateFormatYmdHisDot = "2006.01.02 15:04"
|
|
DateFormatMonth = "2006年01月02日 15:04"
|
|
)
|
|
|
|
func DatetimeToTimes(datetime string, dateFormat string) (times int32, err error) {
|
|
if datetime == "" {
|
|
times = 0
|
|
return
|
|
}
|
|
loc, _ := time.LoadLocation("Asia/Shanghai")
|
|
t, err := time.ParseInLocation(dateFormat, datetime, loc)
|
|
if err != nil {
|
|
zap.L().Error("DatetimeToTimes err:"+datetime+":", zap.Error(err))
|
|
err = errors.New(msg.ErrorDatetime)
|
|
return
|
|
}
|
|
times = int32(t.Unix())
|
|
return
|
|
}
|
|
|
|
func TimesToDatetime(times int32, format string) string {
|
|
if times == 0 {
|
|
return ""
|
|
}
|
|
t := time.Unix(int64(times), 0)
|
|
if format == "" {
|
|
format = DateTimeFormat
|
|
}
|
|
return t.Format(format)
|
|
}
|
|
|
|
func MonthInfo() (startTime int64, endTime int64) {
|
|
timeNow := time.Now()
|
|
timeToday := time.Date(timeNow.Year(), timeNow.Month(), timeNow.Day(), 0, 0, 0, 0, timeNow.Location()) // 获取当天0点时间 time类型
|
|
startTime = timeToday.AddDate(0, 0, -timeToday.Day()+1).Unix() // 获取本月第一天0点 时间戳类型
|
|
endTime = timeToday.AddDate(0, 1, -timeToday.Day()+1).Unix()
|
|
return
|
|
}
|