了解如何使用格式常量或自定義格式在Go中格式化日期
在Go中,可以使用time.Now()
,由time
包裹。
t := time.Now()
這將打印系統本地時間。需要UTC嗎?附加.UTC()
:
時間可以使用time.Format()
方法:
t := time.Now().UTC()
需要時間戳嗎?
t := time.Now().Unix()
使用自定義格式
使用自定義格式進行格式化的示例如下:
fmt.Println(t.Format("2006-01-02 15:04:05"))
那2006-01-02 15:04:05
字符串看起來很奇怪,不是嗎?現在不像是2006年!但是它將打印(在撰寫本文時)2017-01-16 12:53:51
如果您不熟悉Go,這會聽起來非常奇怪的。
解釋如下:Go的時間格式是獨特的,並且與其他語言的格式不同。 Go使用參考日期,而不是使用傳統的格式來打印日期,20060102150405
這似乎毫無意義,但實際上有一個原因,因為1 2 3 4 5 6
在Posix中date
命令:
Mon Jan 2 15:04:05 -0700 MST 2006
0 1 2 3 4 5 6
中間的時區應該是7
(不太確定為什麼他們沒有選擇Mon Jan 2 03:04:05 -0600 MST 2007
, 順便一提)
有趣的歷史參考:https://github.com/golang/go/issues/444
使用格式常量
Go提供了time
打包一些常用格式的方便常量:
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"
)
您可以像這樣使用它們:
t := time.Now()
fmt.Println(t.Format(time.ANSIC))
更多教程:
- 使用NGINX反向代理服務Go服務
- 在Go中復制結構
- Go Web服務器的基礎
- 在Go中對地圖類型進行排序
- 簡而言之去指針
- 轉到標籤說明
- 開始日期和時間格式
- 使用Go進行JSON處理
- 可變參數函數
- 去弦備忘單
- 轉到空界面說明
- 使用VS Code和Delve調試Go
- 命名為Go返回參數
- 在Go中生成隨機數和字符串
- Go項目的文件系統結構
- Go中的二進制搜索算法
- 在Go中使用命令行標誌
- GOPATH解釋
- 使用Go構建一個命令行應用程序:lolcat
- 使用Go構建CLI命令:Cowsay
- 在Go中使用殼管
- Go CLI教程:財富克隆
- 使用Go列出文件夾中的文件
- 使用Go從GitHub獲取存儲庫列表
- 去,將一小段字符串附加到文件中
- 去,將字符串轉換為字節片
- 使用Go可視化您本地的Git貢獻
- Go CPU和內存分析入門
- 解決Go程序中的“不支持索引”錯誤
- 測量Go程序中的執行時間
- 使用Go構建Web爬網程序以檢測重複的標題
- 最佳實踐:指針還是價值接收者?
- 最佳實踐:您應該使用方法還是函數?
- Go數據結構:集
- 前往地圖備忘單
- 在Go中生成泛型類型的實現
- Go數據結構:字典
- Go數據結構:哈希表
- 在“通過通道”中實現事件偵聽器
- Go數據結構:堆棧
- Go數據結構:隊列
- Go數據結構:二進制搜索樹
- Go數據結構:圖形
- Go數據結構:鍊錶
- Go數據結構的完整指南
- 比較Go值
- Go是面向對象的嗎?
- 在Go中使用SQL數據庫
- 在Go中使用環境變量
- 上篇教程:PostgreSQL支持的REST API
- 在Go Web服務器上啟用CORS
- 在Docker容器中部署Go應用程序
- 為什麼Go是作為PHP開發人員學習的功能強大的語言
- 去,刪除io.Reader.ReadString換行符
- 開始,如何觀看更改並重建程序
- 去算一下自約會以來的月份
- 在Go中訪問HTTP POST參數