golang time的幾種用法
阿新 • • 發佈:2019-01-31
首先說明golang 語言設計設有個叫 XXnuts的傢伙,果然是個變態,把時間原點設計在了 2006-01-02 15:04:05
其實人家這個日期是有意義的:
2006-01-02T15:04:05Z07:00
每個數字的意義:
1 2 3 4 5 6 7 月 日 時 分 秒 年 時 區
常用的方法:
1 toTime格式化(Parsing):
用法一: 使用毫秒數
1 |
t
:= time .Unix(1362984425,
0) |
2 |
nt
:= t.Format( "2006-01-02
15:04:05" ) |
3 |
fmt.Println(nt) |
用法二: 使用固定的字串進行格式化獲得time 物件
1 |
const TimeFormat
= "2006-01-02
15:04:05" |
2 |
func
TestXYZ(t *testing.T) { |
3 |
4 |
t,err:= time .Parse(TimeFormat, "2013-08-11
11:18:46" ) |
5 |
l.Println(t) |
6 |
} |
2 toString時間格式化 Formatting
01 |
package
main |
02 |
03 |
import
( |
04 |
"fmt" |
05 |
"time" |
06 |
) |
07 |
08 |
func
main() { |
09 |
t
:= time .SecondsToLocalTime(1305861602) |
10 |
t.ZoneOffset
= -4*60*60 |
11 |
fmt.Println(t.Format( "2006-01-02
15:04:05 -0700" )) |
12 |
} |
13 |
14 |
//
=> "2011-05-20 03:20:02 -0400" |
3 格式串型別
當然如果上面沒有你要的格式化型別,那就看下面的附表:
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" // RFC822 with numeric zone RFC850 = "Monday, 02-Jan-06 15:04:05 MST" RFC822Z = "02 Jan 06 15:04 -0700" RFC1123 = "Mon, 02 Jan 2006 15:04:05 MST" // RFC1123 with numeric zone RFC3339 = "2006-01-02T15:04:05Z07:00" RFC1123Z = "Mon, 02 Jan 2006 15:04:05 -0700" RFC3339Nano = "2006-01-02T15:04:05.999999999Z07:00" // Handy time stamps. Stamp = "Jan _2 15:04:05" Kitchen = "3:04PM" StampMilli = "Jan _2 15:04:05.000" StampMicro = "Jan _2 15:04:05.000000" StampNano = "Jan _2 15:04:05.000000000" )