Golang中的各种时间操作
本文内容纲要:
-Golang中的各种时间操作
-需求
-实现代码
Golang中的各种时间操作
需求
时间格式的转换比较麻烦,自己写了个工具,可以通过工具中的这些方法相互调用转成自己想要的格式,代码如下,后续有新的函数再添加
实现代码
packageutils
import"time"
const(
TIMEFORMAT="20060102150405"
NORMALTIMEFORMAT="2006-01-0215:04:05"
)
//当前时间
funcGetTime()time.Time{
returntime.Now()
}
//格式化为:20060102150405
funcGetTimeString(ttime.Time)string{
returnt.Format(TIMEFORMAT)
}
//格式化为:2006-01-0215:04:05
funcGetNormalTimeString(ttime.Time)string{
returnt.Format(NORMALTIMEFORMAT)
}
//转为时间戳->秒数
funcGetTimeUnix(ttime.Time)int64{
returnt.Unix()
}
//转为时间戳->毫秒数
funcGetTimeMills(ttime.Time)int64{
returnt.UnixNano()/1e6
}
//时间戳转时间
funcGetTimeByInt(t1int64)time.Time{
returntime.Unix(t1,0)
}
//字符串转时间
funcGetTimeByString(timestringstring)(time.Time,error){
iftimestring==""{
returntime.Time{},nil
}
returntime.ParseInLocation(TIMEFORMAT,timestring,time.Local)
}
//标准字符串转时间
funcGetTimeByNormalString(timestringstring)(time.Time,error){
iftimestring==""{
returntime.Time{},nil
}
returntime.ParseInLocation(NORMALTIMEFORMAT,timestring,time.Local)
}
//比较两个时间大小
funcCompareTime(t1,t2time.Time)bool{
returnt1.Before(t2)
}
//n小时后的时间字符串
funcGetNextHourTime(sstring,nint64)string{
t2,_:=time.ParseInLocation(TIMEFORMAT,s,time.Local)
t1:=t2.Add(time.Hour*time.Duration(n))
returnGetTimeString(t1)
}
//计算俩个时间差多少小时
funcGetHourDiffer(start_time,end_timestring)float32{
varhourfloat32
t1,err:=time.ParseInLocation(TIMEFORMAT,start_time,time.Local)
t2,err:=time.ParseInLocation(TIMEFORMAT,end_time,time.Local)
iferr==nil&&CompareTime(t1,t2){
diff:=GetTimeUnix(t2)-GetTimeUnix(t1)
hour=float32(diff)/3600
returnhour
}
returnhour
}
//判断当前时间是否是整点
funcCheckhours()bool{
_,m,s:=GetTime().Clock()
ifm==s&&m==0&&s==0{
returntrue
}
returnfalse
}
//时间字符串转为标准字符串
funcStringToNormalString(tstring)string{
if!(len(TIMEFORMAT)==len(t)||len(SHORTTIMESTRING)==len(t)){
returnt
}
iflen(SHORTTIMESTRING)==len(t){
t+="000000"
}
iflen(TIMEFORMAT)==len(t){
t1,err:=GetTimeByString(t)
iferr!=nil{
returnt
}
t=GetTimeString(t1)
}
returnt
}
本文内容总结:Golang中的各种时间操作,需求,实现代码,
原文链接:https://www.cnblogs.com/Kingram/p/12618067.html