github.com/eframework-cn/EP.GO.UTIL@v1.0.0/xtime/xtime.go (about) 1 //-----------------------------------------------------------------------// 2 // GNU GENERAL PUBLIC LICENSE // 3 // Version 2, June 1991 // 4 // // 5 // Copyright (C) EFramework, https://eframework.cn, All rights reserved. // 6 // Everyone is permitted to copy and distribute verbatim copies // 7 // of this license document, but changing it is not allowed. // 8 // SEE LICENSE.md FOR MORE DETAILS. // 9 //-----------------------------------------------------------------------// 10 11 // 时间常用函数封装,如获取时间戳、时间格式化等. 12 package xtime 13 14 import ( 15 "time" 16 ) 17 18 const ( 19 STRING_TIME_FORMAT_FULL = "2006-01-02 15:04:05 +0800 CST" // 时间格式化模板(标准) 20 STRING_TIME_FORMAT_LITE = "2006-01-02 15:04:05" // 时间格式化模板(简易) 21 STRING_TIME_FORMAT_FILE = "2006-01-02_15_04_05" // 时间格式化模板(文件) 22 ) 23 24 const ( 25 SEC_1 int = 1 // 1秒 26 SEC_5 int = 5 // 5秒 27 SEC_10 int = 10 // 10秒 28 SEC_15 int = 15 // 15秒 29 SEC_20 int = 20 // 20秒 30 SEC_25 int = 25 // 25秒 31 SEC_30 int = 30 // 30秒 32 SEC_35 int = 35 // 35秒 33 SEC_40 int = 40 // 40秒 34 SEC_45 int = 45 // 45秒 35 SEC_50 int = 50 // 50秒 36 SEC_55 int = 55 // 55秒 37 MIN_1 int = 60 // 1分钟 38 MIN_2 int = 120 // 2分钟 39 MIN_3 int = 180 // 3分钟 40 MIN_4 int = 240 // 4分钟 41 MIN_5 int = 300 // 5分钟 42 MIN_6 int = 360 // 6分钟 43 MIN_7 int = 420 // 7分钟 44 MIN_8 int = 480 // 8分钟 45 MIN_9 int = 540 // 9分钟 46 MIN_10 int = 600 // 10分钟 47 MIN_12 int = 720 // 12分钟 48 MIN_15 int = 900 // 15分钟 49 MIN_20 int = 1200 // 20分钟 50 MIN_25 int = 1500 // 25分钟 51 MIN_30 int = 1800 // 30分钟 52 MIN_35 int = 2100 // 35分钟 53 MIN_40 int = 2400 // 40分钟 54 MIN_45 int = 2700 // 45分钟 55 MIN_50 int = 3000 // 50分钟 56 MIN_55 int = 3300 // 55分钟 57 HOUR_1 int = 3600 // 1小时 58 HOUR_2 int = 7200 // 2小时 59 HOUR_3 int = 10800 // 3小时 60 HOUR_4 int = 14400 // 4小时 61 HOUR_5 int = 18000 // 5小时 62 HOUR_6 int = 21600 // 6小时 63 HOUR_7 int = 25200 // 7小时 64 HOUR_8 int = 28800 // 8小时 65 HOUR_9 int = 32400 // 9小时 66 HOUR_10 int = 36000 // 10小时 67 HOUR_11 int = 39600 // 11小时 68 HOUR_12 int = 43200 // 12小时 69 HOUR_13 int = 46800 // 13小时 70 HOUR_14 int = 50400 // 14小时 71 HOUR_15 int = 54000 // 15小时 72 HOUR_16 int = 57600 // 16小时 73 HOUR_17 int = 61200 // 17小时 74 HOUR_18 int = 64800 // 18小时 75 HOUR_19 int = 68400 // 19小时 76 HOUR_20 int = 72000 // 20小时 77 HOUR_21 int = 75600 // 21小时 78 HOUR_22 int = 79200 // 22小时 79 HOUR_23 int = 82800 // 23小时 80 DAY_1 int = 86400 // 1天 81 DAY_2 int = 172800 // 2天 82 DAY_3 int = 259200 // 3天 83 DAY_4 int = 345600 // 4天 84 DAY_5 int = 432000 // 5天 85 DAY_6 int = 518400 // 6天 86 DAY_7 int = 604800 // 7天 87 DAY_8 int = 691200 // 8天 88 DAY_9 int = 777600 // 9天 89 DAY_10 int = 864000 // 10天 90 DAY_15 int = 1296000 // 15天 91 DAY_20 int = 1728000 // 20天 92 DAY_30 int = 2592000 // 30天 93 ) 94 95 // 获取时间戳(微秒) 96 func GetMicrosecond() int { 97 ltime := time.Now().UnixNano() / 1e3 98 return int(ltime) 99 } 100 101 // 获取时间戳(毫秒) 102 func GetMillisecond() int { 103 ltime := time.Now().UnixNano() / 1e6 104 return int(ltime) 105 } 106 107 // 获取时间戳(秒) 108 func GetTimestamp() int { 109 ltime := time.Now().Unix() 110 time.Unix(0, 0).Format("") 111 return int(ltime) 112 } 113 114 // 获取当前时间 115 func NowTime() time.Time { 116 return time.Now() 117 } 118 119 // 时间戳(秒)转时间(object) 120 // timestamp: 时间戳 121 func ToTime(timestamp int) time.Time { 122 return time.Unix(int64(timestamp), 0) 123 } 124 125 // 获取距离零点的时间(秒) 126 // timestamp: 指定时间,若未指定,则使用当前时间 127 func TimeToZero(timestamp ...int) int { 128 t := 0 129 if len(timestamp) == 1 { 130 t = timestamp[0] 131 } else { 132 t = GetTimestamp() 133 } 134 return DAY_1 - (t+HOUR_8)%DAY_1 135 } 136 137 // 获取零点的时间戳(秒) 138 // timestamp: 指定时间,若未指定,则使用当前时间 139 func ZeroTime(timestamp ...int) int { 140 t := 0 141 if len(timestamp) == 1 { 142 t = timestamp[0] 143 } else { 144 t = GetTimestamp() 145 } 146 return t - (t+HOUR_8)%DAY_1 147 } 148 149 // 时间格式化 150 // timestamp: 时间戳 151 // format: 格式化模板 152 func Format(timestamp int, format string) string { 153 return time.Unix(int64(timestamp), 0).Format(format) 154 }