package timex
|
|
import (
|
"time"
|
)
|
|
func StringToTime(timeStr string) (time.Time, error) {
|
return time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
|
}
|
|
func StringToTime2(timeStr string) (time.Time, error) {
|
return time.ParseInLocation("2006-01-02", timeStr, time.Local)
|
}
|
|
func StringToTime3(timeStr string) (time.Time, error) {
|
return time.ParseInLocation("2006-01-02 15:04", timeStr, time.Local)
|
}
|
|
func StringToClock(timeStr string) (time.Time, error) {
|
return time.ParseInLocation("15:04", timeStr, time.Local)
|
}
|
|
func TimeToString(time time.Time) string {
|
return time.Format("2006-01-02 15:04:05")
|
}
|
|
func TimeToString2(time time.Time) string {
|
return time.Format("2006-01-02")
|
}
|
|
func TimeToString3(time time.Time) string {
|
return time.Format("15:04")
|
}
|
|
func UnixTimeToString(_t int64) string {
|
return time.Unix(_t, 0).In(time.Local).Format("2006-01-02 15:04:05")
|
}
|
func UnixTimeToDate(_t int64) string {
|
return time.Unix(_t, 0).In(time.Local).Format("2006-01-02")
|
}
|
|
func DayStartTime(_t int64) int64 {
|
l := time.Unix(_t, 0).In(time.Local)
|
k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local).Unix()
|
return k
|
}
|
|
func DayStartTimeDateStr(_t int64) string {
|
l := time.Unix(_t, 0).In(time.Local)
|
k := time.Date(l.Year(), l.Month(), l.Day(), 0, 0, 0, 0, time.Local)
|
return TimeToString2(k)
|
}
|
|
const timeLayout = "2006-01-02 15:04:05"
|
|
func GetCurrentTime() string {
|
return time.Now().Format(timeLayout)
|
}
|
|
func GetDate(year int, month time.Month) int {
|
day := 0
|
if month == time.February {
|
if (year%4 == 0 && year%100 != 0) || year%400 == 0 {
|
day = 29
|
} else {
|
day = 28
|
}
|
} else {
|
if month == time.January || month == time.March || month == time.May || month == time.July ||
|
month == time.August || month == time.October || month == time.December {
|
day = 31
|
} else {
|
day = 30
|
}
|
}
|
return day
|
}
|
|
// 获取一个月内的所有星期
|
func GetWeeksOfMonth(year int, month time.Month) [][]time.Time {
|
firstDay := time.Date(year, month, 1, 0, 0, 0, 0, time.Local)
|
lastDay := firstDay.AddDate(0, 1, -1) // 下一个月的第一天减一,得到本月的最后一天
|
|
weeks := make([][]time.Time, 0)
|
currentWeek := make([]time.Time, 0)
|
current := firstDay
|
|
for !current.After(lastDay) {
|
currentWeek = append(currentWeek, current)
|
current = current.AddDate(0, 0, 1) // 增加一天
|
|
// 如果当前周已经满了7天,或者已经到了月的最后一天,则保存这一周
|
if len(currentWeek) == 7 || current.After(lastDay) {
|
weeks = append(weeks, currentWeek)
|
currentWeek = make([]time.Time, 0) // 重置当前周
|
}
|
}
|
|
return weeks
|
}
|