You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: chapter04/04.3.md
+7-7
Original file line number
Diff line number
Diff line change
@@ -2,16 +2,16 @@
2
2
3
3
`Time` 代表一个纳秒精度的时间点。
4
4
5
-
程序中应使用 Time 类型值来保存和传递时间,而不是指针。就是说,表示时间的变量和字段,应为 time.Time 类型,而不是*time.Time. 类型。一个 Time 类型值可以被多个 go 程同时使用。时间点可以使用 Before、After 和 Equal 方法进行比较。Sub 方法让两个时间点相减,生成一个 Duration 类型值(代表时间段)。Add 方法给一个时间点加上一个时间段,生成一个新的 Time 类型时间点。
5
+
程序中应使用 Time 类型值来保存和传递时间,而不是指针。就是说,表示时间的变量和字段,应为 time.Time 类型,而不是*time.Time. 类型。一个 Time 类型值可以被多个 go 协程同时使用。时间点可以使用 Before、After 和 Equal 方法进行比较。Sub 方法让两个时间点相减,生成一个 Duration 类型值(代表时间段)。Add 方法给一个时间点加上一个时间段,生成一个新的 Time 类型时间点。
6
6
7
7
Time 零值代表时间点 January 1, year 1, 00:00:00.000000000 UTC。因为本时间点一般不会出现在使用中,IsZero 方法提供了检验时间是否是显式初始化的一个简单途径。
8
8
9
9
每一个 Time 都具有一个地点信息(即对应地点的时区信息),当计算时间的表示格式时,如 Format、Hour 和 Year 等方法,都会考虑该信息。Local、UTC 和 In 方法返回一个指定时区(但指向同一时间点)的 Time。修改地点 / 时区信息只是会改变其表示;不会修改被表示的时间点,因此也不会影响其计算。
10
10
11
-
通过 == 比较 Time 时,Location 信息也会参与比较,因此 Time 不应该作为 map 的 key。
11
+
通过 `==` 比较 Time 时,Location 信息也会参与比较,因此 Time 不应该作为 map 的 key。
12
12
13
13
## Time 的内部结构
14
-
```
14
+
```go
15
15
typeTimestruct {
16
16
// sec gives the number of seconds elapsed since
17
17
// January 1, year 1 00:00:00 UTC.
@@ -33,7 +33,7 @@ type Time struct {
33
33
34
34
要讲解 `time.Time` 的内部结构,得先看 `time.Now()` 函数。
35
35
36
-
```
36
+
```go
37
37
// Now returns the current local time.
38
38
funcNow() Time {
39
39
sec, nsec:=now()
@@ -82,7 +82,7 @@ Time.IsZero() 函数用于判断 Time 表示的时间是否是 0 值。
0 commit comments