Documentation ¶
Overview ¶
Package timejez 时间相关函数
Index ¶
- func AddDay(t time.Time, day int) time.Time
- func AddHour(t time.Time, hour int) time.Time
- func AddMinute(t time.Time, minute int) time.Time
- func AddMonth(t time.Time, month int) time.Time
- func AddSecond(t time.Time, second int) time.Time
- func AddWeek(t time.Time, week int) time.Time
- func AddYear(t time.Time, year int) time.Time
- func CST() *time.Location
- func EndOfDay(t time.Time) time.Time
- func EndOfHour(t time.Time) time.Time
- func EndOfMinute(t time.Time) time.Time
- func EndOfMonth(t time.Time) time.Time
- func EndOfWeekMonday(t time.Time) time.Time
- func EndOfWeekSunday(t time.Time) time.Time
- func EndOfYear(t time.Time) time.Time
- func FormatNow(format ...TimeFormat) string
- func FormatTime(t time.Time, format ...TimeFormat) string
- func FormatTimestamp(timestamp int64, format ...TimeFormat) string
- func IsLeapYear(year int) bool
- func NewTime(loc *time.Location, t ...int) time.Time
- func ParseTime(tm string, format ...TimeFormat) time.Time
- func ParseTimestamp(timestamp int64) time.Time
- func RangeDays(start, end time.Time) []time.Time
- func RangeHours(start, end time.Time) []time.Time
- func RangeMonths(start, end time.Time) []time.Time
- func RangeYears(start, end time.Time) []time.Time
- func StartOfDay(t time.Time) time.Time
- func StartOfHour(t time.Time) time.Time
- func StartOfMinute(t time.Time) time.Time
- func StartOfMonth(t time.Time) time.Time
- func StartOfWeekMonday(t time.Time) time.Time
- func StartOfWeekSunday(t time.Time) time.Time
- func StartOfYear(t time.Time) time.Time
- func SubTime(t1, t2 time.Time) (days, hours, minutes, seconds int)
- func SubTimestamp(t1, t2 int64) (days, hours, minutes, seconds int)
- func ToCST(t time.Time) time.Time
- type TimeFormat
Examples ¶
- AddDay
- AddHour
- AddMinute
- AddMonth
- AddSecond
- AddWeek
- AddYear
- CST
- EndOfDay
- EndOfHour
- EndOfMinute
- EndOfMonth
- EndOfWeekMonday
- EndOfWeekSunday
- EndOfYear
- FormatNow
- FormatTime
- FormatTimestamp
- IsLeapYear
- NewTime
- ParseTime
- ParseTimestamp
- RangeDays
- RangeHours
- RangeMonths
- RangeYears
- StartOfDay
- StartOfHour
- StartOfMinute
- StartOfMonth
- StartOfWeekMonday
- StartOfWeekSunday
- StartOfYear
- SubTime
- SubTimestamp
- ToCST
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AddDay ¶
AddDay 添加或删除天数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(AddDay(tm, 10))
Output: 2022-01-12 03:04:05 +0800 CST
func AddHour ¶
AddHour 添加或删除小时数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(AddHour(tm, 10))
Output: 2022-01-02 13:04:05 +0800 CST
func AddMinute ¶
AddMinute 添加或删除分钟数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(AddMinute(tm, 10))
Output: 2022-01-02 03:14:05 +0800 CST
func AddMonth ¶
AddMonth 添加或删除月数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(AddMonth(tm, 10).Month().String())
Output: November
func AddSecond ¶
AddSecond 添加或删除秒数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(AddSecond(tm, 10))
Output: 2022-01-02 03:04:15 +0800 CST
func AddWeek ¶
AddWeek 添加或删除周数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := AddWeek(tm, 10).Weekday() fmt.Println(res == tm.Weekday())
Output: true
func AddYear ¶
AddYear 添加或删除年数
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(AddYear(tm, 10))
Output: 2032-01-02 03:04:05 +0800 CST
func EndOfDay ¶
EndOfDay 返回时间 t 所在天的结束时间 yyyy-mm-dd 23:59:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfDay(tm) fmt.Println(res)
Output: 2022-01-02 23:59:59.999999999 +0800 CST
func EndOfHour ¶
EndOfHour 返回时间 t 所在小时的结束时间 yyyy-mm-dd hh:59:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfHour(tm) fmt.Println(res)
Output: 2022-01-02 03:59:59.999999999 +0800 CST
func EndOfMinute ¶
EndOfMinute 返回时间 t 所在分钟的结束时间 yyyy-mm-dd hh:mm:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfMinute(tm) fmt.Println(res)
Output: 2022-01-02 03:04:59.999999999 +0800 CST
func EndOfMonth ¶
EndOfMonth 返回时间 t 所在月的结束时间 yyyy-mm-dd 23:59:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfMonth(tm) fmt.Println(res)
Output: 2022-01-31 23:59:59.999999999 +0800 CST
func EndOfWeekMonday ¶
EndOfWeekMonday 返回时间 t 所在周的结束时间,周一为最后一天 yyyy-mm-dd 23:59:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfWeekMonday(tm) fmt.Println(res) fmt.Println(res.Weekday())
Output: 2022-01-03 23:59:59.999999999 +0800 CST Monday
func EndOfWeekSunday ¶
EndOfWeekSunday 返回时间 t 所在周的结束时间,周日为最后一天 yyyy-mm-dd 23:59:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfWeekSunday(tm) fmt.Println(res) fmt.Println(res.Weekday().String())
Output: 2022-01-02 23:59:59.999999999 +0800 CST Sunday
func EndOfYear ¶
EndOfYear 返回时间 t 所在年的结束时间 yyyy-12-31 23:59:59
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := EndOfYear(tm) fmt.Println(res) fmt.Println(res.Month())
Output: 2022-12-31 23:59:59.999999999 +0800 CST December
func FormatNow ¶
func FormatNow(format ...TimeFormat) string
FormatNow 返回当前时间的字符串格式,默认格式为 yyyy-mm-dd hh:mm:ss
Example ¶
now := FormatTime(time.Now()) res := FormatNow() now1 := FormatTime(time.Now(), YYYYMMDDHHMMSS2) res1 := FormatNow(YYYYMMDDHHMMSS2) fmt.Println(now == res) fmt.Println(now1 == res1)
Output: true true
func FormatTime ¶
func FormatTime(t time.Time, format ...TimeFormat) string
FormatTime 将时间格式化为字符串,默认格式为 yyyy-mm-dd hh:mm:ss
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(FormatTime(tm)) fmt.Println(FormatTime(tm, YYYYMMDDHHMMSS2))
Output: 2022-01-02 03:04:05 2022/01/02 03:04:05
func FormatTimestamp ¶
func FormatTimestamp(timestamp int64, format ...TimeFormat) string
FormatTimestamp 将时间戳格式化为字符串,默认格式为 yyyy-mm-dd hh:mm:ss
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(FormatTimestamp(tm.Local().Unix()) == FormatTime(tm.Local()))
Output: true
func IsLeapYear ¶
IsLeapYear 判断年份 year 是否为闰年
Example ¶
fmt.Println(IsLeapYear(2012)) fmt.Println(IsLeapYear(2013))
Output: true false
func NewTime ¶
NewTime 相当于 time.Date,如果不传参数则相当于 time.Now。
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) localTm := tm.In(time.Local) tm1 := NewTime(nil, localTm.Year(), int(localTm.Month()), localTm.Day(), localTm.Hour(), localTm.Minute(), localTm.Second()) fmt.Println(NewTime(nil).Unix() == time.Now().Unix()) fmt.Println(ToCST(tm1))
Output: true 2022-01-02 03:04:05 +0800 CST
func ParseTime ¶
func ParseTime(tm string, format ...TimeFormat) time.Time
ParseTime 将字符串转换为时间,默认格式为 YYYYMMDDHHMMSS
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) tmStr := FormatTime(tm.Local()) fmt.Println(ToCST(ParseTime(tmStr)))
Output: 2022-01-02 03:04:05 +0800 CST
func ParseTimestamp ¶
ParseTimestamp 将时间戳转换为时间
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) localTm := tm.Local() fmt.Println(ToCST(ParseTimestamp(localTm.Unix())))
Output: 2022-01-02 03:04:05 +0800 CST
func RangeDays ¶
RangeDays 返回两个时间之间的所有天的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
Example ¶
tm1 := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) tm2 := time.Date(2022, 1, 4, 5, 55, 44, 0, CST()) fmt.Println(RangeDays(tm1, tm2))
Output: [2022-01-02 03:04:05 +0800 CST 2022-01-03 03:04:05 +0800 CST 2022-01-04 03:04:05 +0800 CST]
func RangeHours ¶
RangeHours 返回两个时间之间的所有小时的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
Example ¶
tm1 := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) tm2 := time.Date(2022, 1, 2, 5, 55, 44, 0, CST()) fmt.Println(RangeHours(tm1, tm2))
Output: [2022-01-02 03:04:05 +0800 CST 2022-01-02 04:04:05 +0800 CST 2022-01-02 05:04:05 +0800 CST]
func RangeMonths ¶
RangeMonths 返回两个时间之间的所有月的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
Example ¶
tm1 := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) tm2 := time.Date(2022, 3, 4, 5, 55, 44, 0, CST()) fmt.Println(RangeMonths(tm1, tm2))
Output: [2022-01-02 03:04:05 +0800 CST 2022-02-02 03:04:05 +0800 CST 2022-03-02 03:04:05 +0800 CST]
func RangeYears ¶
RangeYears 返回两个时间之间的所有年的切片,包含 start 和 end,即[start,end],如果start和end结果一样,则只返回1个
Example ¶
tm1 := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) tm2 := time.Date(2024, 2, 4, 5, 55, 44, 0, CST()) fmt.Println(RangeYears(tm1, tm2))
Output: [2022-01-02 03:04:05 +0800 CST 2023-01-02 03:04:05 +0800 CST 2024-01-02 03:04:05 +0800 CST]
func StartOfDay ¶
StartOfDay 返回时间 t 所在天的开始时间 yyyy-mm-dd 00:00:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := StartOfDay(tm) fmt.Println(res)
Output: 2022-01-02 00:00:00 +0800 CST
func StartOfHour ¶
StartOfHour 返回时间 t 所在小时的开始时间 yyyy-mm-dd hh:00:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := StartOfHour(tm) fmt.Println(res)
Output: 2022-01-02 03:00:00 +0800 CST
func StartOfMinute ¶
StartOfMinute 返回时间 t 所在分钟的开始时间 yyyy-mm-dd hh:mm:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) fmt.Println(StartOfMinute(tm))
Output: 2022-01-02 03:04:00 +0800 CST
func StartOfMonth ¶
StartOfMonth 返回时间 t 所在月的开始时间 yyyy-mm-01 00:00:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := StartOfMonth(tm) fmt.Println(res)
Output: 2022-01-01 00:00:00 +0800 CST
func StartOfWeekMonday ¶
StartOfWeekMonday 返回时间 t 所在周的开始时间,周一为第一天 yyyy-mm-dd 00:00:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := StartOfWeekMonday(tm) fmt.Println(res) fmt.Println(res.Weekday())
Output: 2021-12-27 00:00:00 +0800 CST Monday
func StartOfWeekSunday ¶
StartOfWeekSunday 返回时间 t 所在周的开始时间,周日为第一天 yyyy-mm-dd 00:00:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := StartOfWeekSunday(tm) fmt.Println(res) fmt.Println(res.Weekday().String())
Output: 2021-12-26 00:00:00 +0800 CST Sunday
func StartOfYear ¶
StartOfYear 返回时间 t 所在年的开始时间 yyyy-01-01 00:00:00
Example ¶
tm := time.Date(2022, 1, 2, 3, 4, 5, 0, CST()) res := StartOfYear(tm) fmt.Println(res) fmt.Println(res.Month())
Output: 2022-01-01 00:00:00 +0800 CST January
func SubTime ¶
SubTime 返回 t1 和 t2 之间的差值的日、小时、分钟和秒
Example ¶
t1 := time.Date(2022, 1, 2, 22, 0, 0, 0, CST()) t2 := time.Date(2023, 1, 2, 1, 59, 6, 0, CST()) fmt.Println(SubTime(t2, t1))
Output: 364 3 59 6
func SubTimestamp ¶
SubTimestamp 返回 t1 和 t2 之间的差值的日、小时、分钟和秒
Example ¶
t1 := time.Date(2022, 1, 2, 22, 0, 0, 0, CST()) t2 := time.Date(2022, 1, 33, 1, 59, 6, 0, CST()) fmt.Println(SubTimestamp(t1.Unix(), t2.Unix()))
Output: 30 3 59 6
Types ¶
type TimeFormat ¶
type TimeFormat string
const ( YYYYMMDDHHMMSS TimeFormat = "2006-01-02 15:04:05" YYYYMMDDHHMM TimeFormat = "2006-01-02 15:04" YYYYMMDDHH TimeFormat = "2006-01-02 15" YYYYMMDD TimeFormat = "2006-01-02" YYYYMM TimeFormat = "2006-01" MMDD TimeFormat = "01-02" DDMMYYHHMMSS TimeFormat = "02-01-06 15:04:05" YYYYMMDDHHMMSS2 TimeFormat = "2006/01/02 15:04:05" YYYYMMDDHHMM2 TimeFormat = "2006/01/02 15:04" YYYYMMDDHH2 TimeFormat = "2006/01/02 15" YYYYMMDD2 TimeFormat = "2006/01/02" YYYYMM2 TimeFormat = "2006/01" MMDD2 TimeFormat = "01/02" DDMMYYHHMMSS2 TimeFormat = "02/01/06 15:04:05" YYYY TimeFormat = "2006" MM TimeFormat = "01" HHMMSS TimeFormat = "15:04:05" HHMM TimeFormat = "15:04" MMSS TimeFormat = "04:05" )