Go各時間字串使用詳解
導讀 | 本文主要介紹了Go各時間字串使用解析 |
Go 中時間格式化的模板
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" )
上面這些是官方定義的layout常量,我們自己也可以定義,如:
- "2006-01-02 15:04:05"
- "2006-01-02"
- "2006-01-02 15:04"
- "2006-01-02T15:04" //js和html中多用這種形式
- "2006-01-02 15:03:04 -0700 MST"
Format 格式化為字串
format 的使用物件是一個 time.Time 物件,可以使用官方或者自己定義的佈局進行格式化的輸出,如:
now := time.Now() now.Format("2006-01-02 15:04:05") //輸出 2020-07-21 10:12:13
Parse 字串解析為時間戳或int64
Parse 方法
需要兩個引數,第一個是佈局,第二個是字串
//Parse解析格式化的字串並返回它表示的時間值。 //佈局透過顯示參考時間(定義為2006年1月2日星期一1:04:05 -0700 //如果它是值,則將被解釋;它作為一個例子 //輸入格式。然後將對輸入字串。預定義的佈局ANSIC,UnixDate,RFC3339等描述了參考時間的標準和便捷表示形式。有關格式和參考時間的定義的更多資訊,請參見ANSIC文件以及此程式包定義的其他常量。 //解析時間偏移為-0700的時間時,如果偏移量對應於當前位置(本地)使用的時區,則Parse在返回的時間中使用該位置和時區。否則,它將時間記錄為處於偽造位置,時間固定在給定的區域偏移量。 // //另外,Time.Format的可執行示例詳細說明了佈局字串的工作原理,是一個很好的參考。 // //值中省略的元素假定為零,或者 //零不可能為1,因此解析“ 3:04 pm”將返回時間 //對應於1月1日,0,15:04:00 UTC(請注意,因為年份是 //0,此時間早於零時間)。 //年份必須在0000..9999的範圍內。將檢查星期幾的語法,否則將忽略該語法。 // //解析帶有MST等區域縮寫的時間時,如果該區域縮寫在當前位置具有已定義的偏移量,則使用該偏移量。 //區域縮寫“ UTC”被識別為UTC,與位置無關。 //如果未知區域縮寫,則Parse將時間記錄為位於指定位置的偽造位置,並具有零偏移量。 //此選擇意味著可以使用相同的佈局無損地解析和重新格式化這樣的時間,但是表示中使用的確切瞬間將因實際區域偏移而有所不同。為避免此類問題,請首選使用數字區域偏移量的時間佈局或使用ParseInLocation。 func Parse(layout, value string) (Time, error) { return parse(layout, value, UTC, Local) }
使用例子:
eg, err := time.Parse("2006-01-02 15:04:05 -0700 MST", "2019-08-29 16:48:21 +0800 CST") //輸出結果為time.Time格式 使用 format格式化後為 2019-08-29 16:48:21 ParseInLocation //ParseInLocation類似於Parse,但在兩個重要方面有所不同。 //首先,在沒有時區資訊的情況下,Parse將時間解釋為UTC; //ParseInLocation將時間解釋為給定位置。 //第二,當給定區域偏移量或縮寫時,Parse嘗試將其與本地位置進行匹配; ParseInLocation使用給定的位置 func ParseInLocation(layout, value string, loc *Location) (Time, error) { return parse(layout, value, loc, loc) }
引數: 1. 佈局 2. 字串 3. 時區
獲取本地時區可以使用 time.Local
使用例子:
onlineAt, err := time.ParseInLocation("2006-01-02T15:04", "2020-01-02T15:04"), time.Local)
解析為int64
對於 time.Time 物件,可以使用.Unix() 方法轉為 int64,如:
eg.Unix() //預設使用 UTC時區 eg.Local().Unix() //返回本地時區的時間戳 int64
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69955379/viewspace-2772023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python時間戳和時間字串的各種轉換Python時間戳字串
- Go Modules 詳解使用Go
- c#時間格式化字串詳解 長短轉化C#字串
- C++ 字串使用詳解C++字串
- Linux下使用timedatectl命令時間時區操作詳解Linux
- 時間複雜度(詳解)時間複雜度
- 詳解 Go 語言的計時器Go
- 詳解Go語言的計時器Go
- JavaScript計算時間差詳解JavaScript
- linux時間函式詳解Linux函式
- python時間處理詳解Python
- 去掉時間字串的時分秒字串
- 時間日期字串轉換為時間物件字串物件
- python獲取系統時間(時間函式詳解)Python函式
- 24時區,GMT,UTC,DST,CST時間詳解
- mysql時間操作(時間差和時間戳和時間字串的互轉)MySql時間戳字串
- 如何將時間字串轉換為時間物件字串物件
- JavaScript自動更新時間效果詳解JavaScript
- 時間戳與時間字串的多時區轉換時間戳字串
- 使用Go語言一段時間的感受Go
- 轉:24時區,GMT,UTC,DST,CST時間詳解
- Go Errors 詳解GoError
- js預設一個月時間差的時間段效果詳解JS
- Qt中時鐘時間功能QTime詳解QT
- Unix 字串時間戳問題字串時間戳
- sql server日期時間轉字串SQLServer字串
- MySQL各個版本發行時間MySql
- mysql時間與字串之間相互轉換MySql字串
- 二、Go語言基礎:go install與go fmt命令使用示例詳解Go
- 最詳細的解說—時間和空間複雜度複雜度
- 詳解 go 的切片Go
- Go 通道(chanel)詳解Go
- GO語言字串有哪些?詳細分類Go字串
- 課時14:字串:各種奇葩的內建方法字串
- go 把時間儲存到 MongoDB , 時間是 time 型別MongoDB型別
- Go高階特性 15 | 執行時反射:字串和結構體之間轉換Go反射字串結構體
- js將時間日期字串轉換為時間日期Date物件JS字串物件
- go 字串Go字串