1 Star 1 Fork 0

vincent/gcutil

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
timeUtils.go 2.42 KB
一键复制 编辑 原始数据 按行查看 历史
vincent 提交于 2023-02-25 21:59 . feat(): logger的升级
package timeUtil
import (
"time"
)
type Time time.Time
const (
TimeFormat = "2006-01-02 15:04:05"
LongFormat = "2006-01-02 15:04:05.000000000"
CompactFormat = "20060102150405" // 紧凑型格式
)
/**********************************************
转换
**********************************************/
// NowStr 得到当前时间的通用格式字符串
func NowStr() string {
return TimeStr(time.Now())
}
// NowStr2 得到当前时间的字符串(秒)
func NowStr2() string {
return TimeFmtStr(time.Now(), CompactFormat)
}
func NowFmtStr(fmtStr string) string {
return TimeFmtStr(time.Now(), fmtStr)
}
func TimeStr(t time.Time) string {
return TimeFmtStr(t, TimeFormat)
}
func TimeFmtStr(t time.Time, fmt string) string {
return t.Format(fmt)
}
func NowNano() int64 {
return TimeSecond(time.Now())
}
func TimeNano(t time.Time) int64 {
return t.UnixNano()
}
// NowMillis 得到当前时间戳 毫秒
func NowMillis() int64 {
return TimeMillis(time.Now())
}
func TimeMillis(t time.Time) int64 {
return t.UnixNano() / 1e6
}
// NowSecond 得到当前时间戳 秒
func NowSecond() int64 {
return TimeSecond(time.Now())
}
func TimeSecond(t time.Time) int64 {
return t.Unix()
}
// TimeFromStamp 时间戳 参数 s 为秒 ns 为纳秒
// 注:最后的时间为s+ns的结果
// millis := nanos / 1000000 // 毫秒
func TimeFromStamp(s, ns int64) time.Time {
return time.Unix(s, ns)
}
func TimeFromStampMillis(ms int64) time.Time {
return time.Unix(0, ms*1e6)
}
/**********************************************
UTC
**********************************************/
func UTCbyTime(t time.Time) (time.Time, error) {
// time.LoadLocation("") //等同于"UTC"
// time.LoadLocation("Local")//服务器设置的时区
// time.LoadLocation("America/Los_Angeles")
local, err := time.LoadLocation("Local")
if err != nil {
return time.Now(), err
} else {
t1 := t.In(local)
return t1, nil
}
}
/**********************************************
json
**********************************************/
func (t *Time) UnmarshalJSON(data []byte) (err error) {
now, err := time.ParseInLocation(`"`+TimeFormat+`"`, string(data), time.Local)
*t = Time(now)
return
}
func (t Time) MarshalJSON() ([]byte, error) {
b := make([]byte, 0, len(TimeFormat)+2)
b = append(b, '"')
b = time.Time(t).AppendFormat(b, TimeFormat)
b = append(b, '"')
return b, nil
}
func (t Time) String() string {
return time.Time(t).Format(TimeFormat)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/vincent78/gcutil.git
git@gitee.com:vincent78/gcutil.git
vincent78
gcutil
gcutil
v1.0.1

搜索帮助