程序执行结果
time.Time 2019-09-1617:51:01.2357834+0800CSTm=+0.004988701 *********************** 2019-09-1617:51:01 string程序执行结果
1568631868 1568718268程序执行结果
2019-09-0621:58程序执行结果
1568563200 1568617440 1568563200 1568736000程序执行结果
2019-09-1619:40:50+0800CST程序执行结果
2019-09-1615:04:05+0000UTC 2019-09-1615:04:00+0000UTC 2019-09-1600:00:00+0000UTC 2019-09-1615:04:05+0000UTC 2019-09-1615:04:00+0000UTC 2019-09-1600:00:00+0000UTC程序执行结果
2019-09-1717:55:59.4755575+0800CST 2019-09-0117:55:59.4755575+0800CST总结:
import( "fmt" "time" ) funcparse_datetime_to_timestr(ttime.Time,flagint)string{ /** 把datetime转换成时间字符串 t:datetime时间,比如:2019-09-1709:45:42.5962359+0800CSTm=+0.003989201 flag:标识位,决定输出的时间字符串的格式 */ vartime_strstring ifflag==1{ time_str=t.Format("2006-01-0215:04:05") }elseifflag==2{ time_str=t.Format("2006-01-0215:04") }elseifflag==3{ time_str=t.Format("2006-01-02") }elseifflag==4{ time_str=t.Format("2006.01.0215:04:05") }elseifflag==6{ time_str=t.Format("2006.01.0215:04") }else{ time_str=t.Format("2006.01.02") } returntime_str } funcparse_datetime_to_timestamp(ttime.Time)int64{ /** 把datetime转换成时间戳 t:datetime时间 */ returnt.Unix() } funcparse_timestr_to_datetime(time_strstring,flagint)time.Time{ /** 把时间字符串转换成datetime时间 time_str:时间字符串,比如:2019-09-1715:04:05 flag:标识位,决定输入的时间字符串的格式 */ ifflag==1{ t,error1:=time.Parse("2006-01-0215:04:05",time_str) iferror1!=nil{ panic(error1) } returnt }elseifflag==2{ t,error2:=time.Parse("2006-01-0215:04",time_str) iferror2!=nil{ panic(error2) } returnt }elseifflag==3{ t,error3:=time.Parse("2006-01-02",time_str) iferror3!=nil{ panic(error3) } returnt }elseifflag==4{ t,error4:=time.Parse("2006.01.0215:04:05",time_str) iferror4!=nil{ panic(error4) } returnt }elseifflag==5{ t,error5:=time.Parse("2006.01.0215:04",time_str) iferror5!=nil{ panic(error5) } returnt }else{ t,err:=time.Parse("2006.01.02",time_str) iferr!=nil{ panic(err) } returnt } } funcparse_timestr_to_timestamp(time_strstring,flagint)int64{ /** 把时间字符串转换成时间戳 time_str:时间字符串,比如:2019-09-1709:45:42 flag:标识位,决定传入的时间字符串的格式 */ vartint64 loc,_:=time.LoadLocation("Local") ifflag==1{ t1,_:=time.ParseInLocation("2006.01.0215:04:05",time_str,loc) t=t1.Unix() }elseifflag==2{ t1,_:=time.ParseInLocation("2006-01-0215:04",time_str,loc) t=t1.Unix() }elseifflag==3{ t1,_:=time.ParseInLocation("2006-01-02",time_str,loc) t=t1.Unix() }elseifflag==4{ t1,_:=time.ParseInLocation("2006.01.02",time_str,loc) t=t1.Unix() }else{ t1,_:=time.ParseInLocation("2006-01-0215:04:05",time_str,loc) t=t1.Unix() } returnt } funcparse_timestamp_to_timestr(stampint64,flagint)string{ /** 把时间戳转换成时间字符串 stamp:时间戳,比如:1568685105,调用此方法时需先声明为int64类型 flag:标识位,决定输入的时间字符串的格式 */ vartime_strstring ifflag==1{ time_str=time.Unix(stamp,0).Format("2006-01-02") }elseifflag==2{ time_str=time.Unix(stamp,0).Format("2006-01-0215:04:05") }elseifflag==3{ time_str=time.Unix(stamp,0).Format("2006-01-0215:04") }elseifflag==4{ time_str=time.Unix(stamp,0).Format("2006.01.0215:04:05") }elseifflag==5{ time_str=time.Unix(stamp,0).Format("2006.01.0215:04") }else{ time_str=time.Unix(stamp,0).Format("2006.01.02") } returntime_str } funcparse_timestamp_to_datetime(tint64)time.Time{ /** 时间戳转换成datetime时间 */ returntime.Unix(t,0) } funcget_after_day(day_range,flagint)time.Time{ /** 获取多少天,多少月或者多少年之前或之后的时间 day_range:间隔的天数,月数或者年份数 flag:决定是取天数,月数还是年数 */ now:=time.Now() vartmp_daytime.Time ifflag==1{ tmp_day=now.AddDate(day_range,0,0) }elseifflag==2{ tmp_day=now.AddDate(0,day_range,0) }else{ tmp_day=now.AddDate(0,0,day_range) } returntmp_day } funcget_after_time(time_rangestring)time.Time{ /** 获取多少小时,分钟及秒之前或之后的时间 time_range:时间差,比如: 10h 获取10小时之后的时间 -10h 获取10小时之前的时间 10m 获取10分钟之后的时间 -10m 获取10分钟之后的时间 10s 获取10秒之后的时间 -10s 获取10秒之后的时间 */ m,_:=time.ParseDuration(time_range) tmp:=time.Now().Add(m) returntmp } funcget_current(ttime.Time){ current_year:=t.Year()// 获取年份 fmt.Println(current_year) current_month:=t.Month()// 获取月份 fmt.Println(current_month) current_day:=t.Day()// 获取天数 fmt.Println(current_day) current_hour:=t.Hour()// 获取小时数 fmt.Println(current_hour) current_minute:=t.Minute()// 获取分钟数 fmt.Println(current_minute) current_second:=t.Second()// 获取秒数 fmt.Println(current_second) current_nanosecond:=t.Nanosecond()// 获取纳秒数 fmt.Println(current_nanosecond) }本文内容总结:1.datetime转换成时间字符串,2.datetime转换成时间戳,3.时间戳转换成时间字符串,4.时间字符串转换成时间戳,5.时间戳转换成datetime时间,6.时间字符串转换成时间戳,7.日期加减操作,
原文链接:https://www.cnblogs.com/renpingsheng/p/11532190.html