golang時(shí)間字符串和時(shí)間戳轉(zhuǎn)換的案例
1. 獲取當(dāng)前時(shí)間字符串和時(shí)間戳
package main
import (
"fmt"
"time"
)
func main() {
now := time.Now().UTC()
// 顯示時(shí)間格式: UnixDate = "Mon Jan _2 15:04:05 MST 2006"
fmt.Printf("%s\n", now.Format(time.UnixDate))
// 顯示時(shí)間戳
fmt.Printf("%ld\n", now.Unix())
// 顯示時(shí)分:Kitchen = "3:04PM"
fmt.Printf("%s\n", now.Format("3:04PM"))
}
更多時(shí)間格式
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. 時(shí)間字符串解析成時(shí)間格式
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. 獲取當(dāng)天零點(diǎn)時(shí)間戳
方法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返回早八點(diǎn)的時(shí)間戳,減去8個(gè)小時(shí)
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本地時(shí)區(qū)
var Local *Location = &localLoc
以及UTC時(shí)區(qū)
var UTC *Location = &utcLoc
還可以替換成指定時(shí)區(qū)
//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.
*/
補(bǔ)充:Golang中獲取當(dāng)天0點(diǎn)的格式化時(shí)間
如下所示:
EndDateLimit := time.Now().Format("2006-01-02 00:00:00")
取當(dāng)天某個(gè)整點(diǎn)的時(shí)間戳
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()
本地當(dāng)前時(shí)間戳(10位)
fmt.Println(time.Now().Unix()) //1468479251
本地當(dāng)前時(shí)間戳(19位)
fmt.Println(time.Now().UnixNano()) //1468480006774460462
時(shí)間戳轉(zhuǎn)時(shí)間
fmt.Println(time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")) //2014-01-07 09:32:12
時(shí)間轉(zhuǎn)時(shí)間戳
fmt.Println(time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local).Unix())
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
Golang中基于HTTP協(xié)議的網(wǎng)絡(luò)服務(wù)
HTTP協(xié)議是基于TCP/IP協(xié)議棧的,并且它也是一個(gè)面向普通文本的協(xié)議。這篇文章主要詳細(xì)介紹了Golang中基于HTTP協(xié)議的網(wǎng)絡(luò)服務(wù),感興趣的小伙伴可以借鑒一下2023-04-04
淺析Golang中的net/http路由注冊(cè)與請(qǐng)求處理
這篇文章主要為大家詳細(xì)介紹了Golang中的net/http路由注冊(cè)與請(qǐng)求處理的相關(guān)知識(shí),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12
聊聊golang中多個(gè)defer的執(zhí)行順序
這篇文章主要介紹了golang中多個(gè)defer的執(zhí)行順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-05-05
Go 語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙鏈表學(xué)習(xí)教程
這篇文章主要為大家介紹了Go 語(yǔ)言數(shù)據(jù)結(jié)構(gòu)之雙鏈表學(xué)習(xí)教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08
Go語(yǔ)言使用ioutil.ReadAll函數(shù)需要注意基本說(shuō)明
這篇文章主要為大家介紹了Go語(yǔ)言使用ioutil.ReadAll函數(shù)需要注意基本說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
go語(yǔ)言if/else語(yǔ)句簡(jiǎn)單用法示例
這篇文章主要介紹了go語(yǔ)言if/else語(yǔ)句用法,結(jié)合實(shí)例形式分析了go語(yǔ)言if else語(yǔ)句的判定與流程控制技巧,需要的朋友可以參考下2016-05-05
Golang?Gin框架獲取請(qǐng)求參數(shù)的幾種常見(jiàn)方式
在我們平常添加路由處理函數(shù)之后,就可以在路由處理函數(shù)中編寫(xiě)業(yè)務(wù)處理代碼了,但在此之前我們往往需要獲取請(qǐng)求參數(shù),本文就詳細(xì)的講解下gin獲取請(qǐng)求參數(shù)常見(jiàn)的幾種方式,需要的朋友可以參考下2024-02-02

