gpt4 book ai didi

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

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章golang时间字符串和时间戳转换的案例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

1. 获取当前时间字符串和时间戳 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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"))
}

更多时间格式 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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. 时间字符串解析成时间格式 。

?
1
2
3
4
5
6
7
8
9
10
11
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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
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 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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") 。

取当天某个整点的时间戳 。

?
1
2
3
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()) 。

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

原文链接:https://blog.csdn.net/cwcmcw/article/details/78932739 。

最后此篇关于golang时间字符串和时间戳转换的案例的文章就讲到这里了,如果你想了解更多关于golang时间字符串和时间戳转换的案例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com