go-doc-date

地区时间

时间转换为UTC时间和本地时间( UTC:零时区 +0000, China: 东八区 +0800)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
dateStr := "2016-07-14 14:24:51"
timestamp1, _ := time.Parse("2006-01-02 15:04:05", dateStr)
timestamp2, _ := time.ParseInLocation("2006-01-02 15:04:05", dateStr, time.Local)

// 日期转换的 UTC 时间 1468506291 2016-07-14 14:24:51 +0000 UTC
// 本地时间 1468506291 2016-07-14 22:24:51 +0800 CST
fmt.Println("日期转换的 UTC 时间 ", timestamp1.Unix(), timestamp1)
fmt.Println("本地时间 ", timestamp1.Unix(), time.Unix(timestamp1.Unix(), 0))

// 日期转换的本地时间 1468477491 2016-07-14 14:24:51 +0800 CST
// 本地时间 1468477491 2016-07-14 14:24:51 +0800 CST
fmt.Println("日期转换的本地时间 ", timestamp2.Unix(), timestamp2)
fmt.Println("本地时间 ", timestamp2.Unix(), time.Unix(timestamp2.Unix(), 0))

now := time.Now()
year, mon, day := now.UTC().Date()
hour, min, sec := now.UTC().Clock()
zone, _ := now.UTC().Zone()

// UTC 时间是 2020-5-12 03:38:40 UTC
fmt.Printf("UTC 时间 %d-%d-%d %02d:%02d:%02d %s\n", year, mon, day, hour, min, sec, zone)

year, mon, day = now.Date()
hour, min, sec = now.Clock()
zone, _ = now.Zone()

// 本地时间是 2020-5-12 11:38:40 CST
fmt.Printf("本地时间 %d-%d-%d %02d:%02d:%02d %s\n", year, mon, day, hour, min, sec, zone)
1
time := time.Date(year, time.Month(month), day, hour, min, sec, 0, time.Local)

时间转换

时间戳转日期

1
2
3
4
5
6
7
8
//构造时间戳
timestamp := int64(1564035531)

//转化所需模板
timeLayout := "2006-01-02 15:04:05"

//进行格式化
datetime := time.Unix(timestamp, 0).Format(timeLayout)

日期格式化

1
2
3
fmt.Println(time.Now().Format("3:04:05.000 PM Mon Jan"))            // 2:27:05.702 PM Thu Jul
fmt.Println(time.Now().Format("2006-01-_2 3:04:05.000 PM Mon Jan")) // 2016-07-14 2:54:11.442 PM Thu Jul
fmt.Println(time.Now().Format("2006-01-02 15:04:05")) // 2016-07-14 14:54:11.442239513 +0800 CST