golang时间字符串和时间戳转换的案例

Tanya ·
更新时间:2024-09-20
· 826 次阅读

1. 获取当前时间字符串和时间戳 package main import ( "fmt" "time" ) func main() { now := time.Now().UTC() // 显示时间格式: UnixDate = "Mon Jan _2 15:04:05 MST 2006" 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 = "Mon Jan _2 15:04:05 2006" UnixDate = "Mon Jan _2 15:04:05 MST 2006" RubyDate = "Mon Jan 02 15:04:05 -0700 2006" RFC822 = "02 Jan 06 15:04 MST" RFC822Z = "02 Jan 06 15:04 -0700" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST" RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" // RFC1123 with numeric zone RFC3339 = "2006-01-02T15:04:05Z07:00" RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" Kitchen = "3:04PM" // Handy time stamps. Stamp = "Jan _2 15:04:05" StampMilli = "Jan _2 15:04:05.000" StampMicro = "Jan _2 15:04:05.000000" StampNano = "Jan _2 15:04:05.000000000" ) 2. 时间字符串解析成时间格式 package main import ( "fmt" "time" ) func main() { timeStr := "2018-01-01" fmt.Println("timeStr:", timeStr) t, _ := time.Parse("2006-01-02", timeStr) fmt.Println(t.Format(time.UnixDate)) } 3. 获取当天零点时间戳

方法1

package main import ( "fmt" "time" ) func main() { 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

package main import ( "fmt" "time" ) func main() { now := time.Now() t, _ := time.ParseInLocation("2006-01-02", now.Format("2006-01-02"), time.Local) timestamp := t.Unix() fmt.Println(timestamp) } /* time.Local本地时区 var Local *Location = &localLoc 以及UTC时区 var UTC *Location = &utcLoc 还可以替换成指定时区 //func LoadLocation(name string) (*Location, error) loc, _ := time.LoadLocation("Europe/Berlin") If the name is "" or "UTC", LoadLocation returns UTC. If the name is "Local", LoadLocation returns Local. */

补充:Golang中获取当天0点的格式化时间

如下所示:

EndDateLimit := time.Now().Format("2006-01-02 00: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-02 15:04:05")) //2014-01-07 09:32:12

时间转时间戳

fmt.Println(time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix())

以上为个人经验,希望能给大家一个参考,也希望大家多多支持软件开发网。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:golang 字符串拼接性能的对比分析利用golang的字符串解决leetcode翻转字符串里的单词golang 字符串切片去重实例Golang中的Unicode与字符串示例详解golang 获取字符串长度的案例



时间戳转换 字符串 golang 时间戳 字符

需要 登录 后方可回复, 如果你还没有账号请 注册新账号