1. 程式人生 > >golang語言漸入佳境[28]-time包核心方法

golang語言漸入佳境[28]-time包核心方法

time包核心方法

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136

137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
package main

import (
"time"
"fmt"
)

/*
//1、Now()返回當前本地時間

//2、Local()將時間轉成本地時區,但指向同一時間點的Time。

//3、UTC()將時間轉成UTC和零時區,但指向同一時間點的Time。

//4、Date()可以根據指定數值,返回一個本地或國際標準的時間格式。

//5、Parse()能將一個格式化的時間字串解析成它所代表的時間。就是string轉time


//6、Format()根據指定的時間格式,將時間格式化成文字。就是time轉string

//7、String()將時間格式化成字串,格式為:"2006-01-02 15:04:05.999999999 -0700 MST"

//8、Unix()將t表示為Unix時間(時間戳,一個int64整數),即從時間點January 1, 1970 UTC到時間點t所經過的時間(單位秒)。

//9、UnixNano()將t表示為Unix時間(時間戳,一個int64整數),即從時間點January 1, 1970 UTC到時間點t所經過的時間(單位納秒)。

//10、Equal()判斷時間是否相等

//11、Before()如果t代表的時間點在u之前,返回真;否則返回假。


//12、After()如果t代表的時間點在u之後,返回真;否則返回假。

//13、Date()返回時間點對應的年、月、日資訊

//14、Year()返回時間點對應的年的資訊

//15、Month()返回時間點對應的月的資訊

//16、Day()返回時間點對應的日的資訊

//17、Weekday()返回時間點對應的星期的資訊

//18、Clock()返回時間點對應的時、分、秒資訊

//19、Hour()返回時間點對應的小時的資訊

//20、Minute()返回時間點對應的分的資訊

//21、Second()返回時間點對應的秒的資訊

//22、Nanosecond()返回時間點對應的納秒的資訊

//23、Sub()返回一個時間段t-u。

//24、Hours()將時間段表示為float64型別的小時數。

//25、Minutes()將時間段表示為float64型別的分鐘數。

//26、Seconds()將時間段表示為float64型別的秒數。

//27、Nanoseconds()將時間段表示為int64型別的納秒數,等價於int64(d)。

//28、String()返回時間段採用"72h3m0.5s"格式的字串表示。

//29、ParseDuration解析一個時間段字串。

//30、Add()返回時間點t+d。

//31、AddDate()返回增加了給出的年份、月份和天數的時間點Time。
*/
func main() {
time1 := time.Now()
testTime()
time2 := time.Now()
//計算函式執行時間
fmt.Println(time2.Sub(time1).Seconds())
}

func testTime() {
//1、Now()返回當前本地時間
t := time.Now()
fmt.Println("1、", t)

//2、Local()將時間轉成本地時區,但指向同一時間點的Time。
fmt.Println("2、", t.Local())

//3、UTC()將時間轉成UTC和零時區,但指向同一時間點的Time。
fmt.Println("3、", t.UTC())

//4、Date()可以根據指定數值,返回一個本地或國際標準的時間格式。
t = time.Date(2018, time.January, 1, 1, 1, 1, 0, time.Local)
fmt.Printf("4、本地時間%s , 國際統一時間:%s \n", t, t.UTC())

//5、Parse()能將一個格式化的時間字串解析成它所代表的時間。就是string轉time
//預定義的ANSIC、UnixDate、RFC3339
//ANSIC       = "Mon Jan _2 15:04:05 2006"//1 1 2 3 4 5 6
t, _ = time.Parse("2006-01-02 15:04:05", "2018-07-19 05:47:13")
fmt.Println("5、", t)

//6、Format()根據指定的時間格式,將時間格式化成文字。就是time轉string
fmt.Println("6、" , time.Now().Format("2006-01-02 15:04:05"))

//7、String()將時間格式化成字串,格式為:"2006-01-02 15:04:05.999999999 -0700 MST"
fmt.Println("7、" , time.Now().String())

//8、Unix()將t表示為Unix時間(時間戳,一個int64整數),即從時間點January 1, 1970 UTC到時間點t所經過的時間(單位秒)。
fmt.Println("8、" , time.Now().Unix())

//9、UnixNano()將t表示為Unix時間(時間戳,一個int64整數),即從時間點January 1, 1970 UTC到時間點t所經過的時間(單位納秒)。
fmt.Println("9、" , time.Now().UnixNano())

//10、Equal()判斷時間是否相等
fmt.Println("10、" , t.Equal(time.Now()))

//11、Before()如果t代表的時間點在u之前,返回真;否則返回假。
fmt.Println("11、" , t.Before(time.Now()))

//12、After()如果t代表的時間點在u之後,返回真;否則返回假。
fmt.Println("12、" , t.After(time.Now()))

//13、Date()返回時間點對應的年、月、日資訊
year , month , day := time.Now().Date()
fmt.Println("13、" , year , month ,day)

//14、Year()返回時間點對應的年的資訊
fmt.Println("14、" , time.Now().Year())

//15、Month()返回時間點對應的月的資訊
fmt.Println("15、" , time.Now().Month())

//16、Day()返回時間點對應的日的資訊
fmt.Println("16、" , time.Now().Day())

//17、Weekday()返回時間點對應的星期的資訊
fmt.Println("17、" , time.Now().Weekday())

//18、Clock()返回時間點對應的時、分、秒資訊
hour , minute , second := time.Now().Clock()
fmt.Println("18、" , hour , minute , second)

//19、Hour()返回時間點對應的小時的資訊
fmt.Println("19、" , time.Now().Hour())

//20、Minute()返回時間點對應的分的資訊
fmt.Println("20、" , time.Now().Minute())

//21、Second()返回時間點對應的秒的資訊
fmt.Println("21、" , time.Now().Second())

//22、Nanosecond()返回時間點對應的納秒的資訊
fmt.Println("22、" , time.Now().Nanosecond())

//23、Sub()返回一個時間段t-u。
fmt.Println("23、" , time.Now().Sub(time.Now()))

//24、Hours()將時間段表示為float64型別的小時數。
fmt.Println("24、" , time.Now().Sub(time.Now()).Hours())

//25、Minutes()將時間段表示為float64型別的分鐘數。
fmt.Println("25、" , time.Now().Sub(time.Now()).Minutes())

//26、Seconds()將時間段表示為float64型別的秒數。
fmt.Println("26、" , time.Now().Sub(time.Now()).Seconds())

//27、Nanoseconds()將時間段表示為int64型別的納秒數,等價於int64(d)。
fmt.Println("27、" , time.Now().Sub(time.Now()).Nanoseconds())

//28、String()返回時間段採用"72h3m0.5s"格式的字串表示。
fmt.Println("28、" , "時間間距:", t.Sub(time.Now()).String())

//29、ParseDuration解析一個時間段字串。
d,_:=time.ParseDuration("1h30m")
fmt.Println("29、" , d)

//30、Add()返回時間點t+d。
fmt.Println("30、" , "交卷時間:" , time.Now().Add(d))

//31、AddDate()返回增加了給出的年份、月份和天數的時間點Time。
fmt.Println("31、" , "一年一個月零一天之後的日期:" , time.Now().AddDate(1,1,1))

}

image.png