golang时间字符串和时间戳转换的案例
1.获取当前时间字符串和时间戳
packagemain import( "fmt" "time" ) funcmain(){ now:=time.Now().UTC() //显示时间格式:UnixDate="MonJan_215:04:05MST2006" fmt.Printf("%s\n",now.Format(time.UnixDate)) //显示时间戳 fmt.Printf("%ld\n",now.Unix()) //显示时分:Kitchen="3:04PM" fmt.Printf("%s\n",now.Format("3:04PM")) }
更多时间格式
const( ANSIC="MonJan_215:04:052006" UnixDate="MonJan_215:04:05MST2006" RubyDate="MonJan0215:04:05-07002006" RFC822="02Jan0615:04MST" RFC822Z="02Jan0615:04-0700"//RFC822withnumericzone RFC850="Monday,02-Jan-0615:04:05MST" RFC1123="Mon,02Jan200615:04:05MST" RFC1123Z="Mon,02Jan200615:04:05-0700"//RFC1123withnumericzone RFC3339="2006-01-02T15:04:05Z07:00" RFC3339Nano="2006-01-02T15:04:05.999999999Z07:00" Kitchen="3:04PM" //Handytimestamps. Stamp="Jan_215:04:05" StampMilli="Jan_215:04:05.000" StampMicro="Jan_215:04:05.000000" StampNano="Jan_215:04:05.000000000" )
2.时间字符串解析成时间格式
packagemain import( "fmt" "time" ) funcmain(){ timeStr:="2018-01-01" fmt.Println("timeStr:",timeStr) t,_:=time.Parse("2006-01-02",timeStr) fmt.Println(t.Format(time.UnixDate)) }
3.获取当天零点时间戳
方法1
packagemain import( "fmt" "time" ) funcmain(){ timeStr:=time.Now().Format("2006-01-02") t,_:=time.Parse("2006-01-02",timeStr) fmt.Println(t.Format(time.UnixDate)) //Unix返回早八点的时间戳,减去8个小时 timestamp:=t.UTC().Unix()-8*3600 fmt.Println("timestamp:",timestamp) }
方法2
packagemain import( "fmt" "time" ) funcmain(){ now:=time.Now() t,_:=time.ParseInLocation("2006-01-02",now.Format("2006-01-02"),time.Local) timestamp:=t.Unix() fmt.Println(timestamp) } /* time.Local本地时区 varLocal*Location=&localLoc 以及UTC时区 varUTC*Location=&utcLoc 还可以替换成指定时区 //funcLoadLocation(namestring)(*Location,error) loc,_:=time.LoadLocation("Europe/Berlin") Ifthenameis""or"UTC",LoadLocationreturnsUTC.Ifthenameis"Local",LoadLocationreturnsLocal. */
补充:Golang中获取当天0点的格式化时间
如下所示:
EndDateLimit:=time.Now().Format("2006-01-0200:00:00")
取当天某个整点的时间戳
now:=time.Now().Unix() muteEndTime:=time.Date(time.Now().Year(),time.Now().Month(),time.Now().Day(),8,0,0,0,time.Local).Unix() muteStartTime:=time.Date(time.Now().Year(),time.Now().Month(),time.Now().Day(),22,0,0,0,time.Local).Unix()
本地当前时间戳(10位)
fmt.Println(time.Now().Unix())//1468479251
本地当前时间戳(19位)
fmt.Println(time.Now().UnixNano())//1468480006774460462
时间戳转时间
fmt.Println(time.Unix(1389058332,0).Format("2006-01-0215:04:05"))//2014-01-0709:32:12
时间转时间戳
fmt.Println(time.Date(2014,1,7,5,50,4,0,time.Local).Unix())
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。