# Go 時間
Go提供了對時間和一段時間的支持。這里有一些例子。
```go
package main
import "fmt"
import "time"
func main() {
p := fmt.Println
// 從獲取當前時間開始
now := time.Now()
p(now)
// 你可以提供年,月,日等來創建一個時間。當然時間
// 總是會和地區聯系在一起,也就是時區
then := time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)
p(then)
// 你可以獲取時間的各個組成部分
p(then.Year())
p(then.Month())
p(then.Day())
p(then.Hour())
p(then.Minute())
p(then.Second())
p(then.Nanosecond())
p(then.Location())
// 輸出當天是周幾,Monday-Sunday中的一個
p(then.Weekday())
// 下面的幾個方法判斷兩個時間的順序,精確到秒
p(then.Before(now))
p(then.After(now))
p(then.Equal(now))
// Sub方法返回兩個時間的間隔(Duration)
diff := now.Sub(then)
p(diff)
// 可以以不同的單位來計算間隔的大小
p(diff.Hours())
p(diff.Minutes())
p(diff.Seconds())
p(diff.Nanoseconds())
// 你可以使用Add方法來為時間增加一個間隔
// 使用負號表示時間向前推移一個時間間隔
p(then.Add(diff))
p(then.Add(-diff))
}
```
運行結果
```
2014-03-02 22:54:40.561698065 +0800 CST
2009-11-17 20:34:58.651387237 +0000 UTC
2009
November
17
20
34
58
651387237
UTC
Tuesday
true
false
false
37578h19m41.910310828s
37578.328308419674
2.2546996985051804e+06
1.3528198191031083e+08
135281981910310828
2014-03-02 14:54:40.561698065 +0000 UTC
2005-08-05 02:15:16.741076409 +0000 UTC
```
- 版權
- 內容
- Go常量
- Go變量
- Go 數值
- Go 數組
- Go 字典
- Go 函數定義
- Go 方法
- Go 結構體
- Go 閉包函數
- Go 接口
- Go 字符串操作函數
- Go 字符串格式化
- Go 自定義排序
- Go Base64編碼
- Go Defer
- Go Exit.md
- Go for循環
- Go if..else if..else 條件判斷
- Go JSON支持
- Go Line Filters
- Go 狀態協程
- Go Panic
- Go range函數
- Go SHA1 散列
- Go String與Byte切片之間的轉換
- Go Switch語句
- Go URL解析
- Go 遍歷通道
- Go 并行功能
- Go 并行通道Channel
- Go 超時
- Go 錯誤處理
- Go 打點器
- Go 遞歸函數
- Go 讀取文件
- Go 工作池
- Go 關閉通道
- Go 函數多返回值
- Go 函數回調
- Go 函數命名返回值
- Go 互斥
- Go 環境變量
- Go 集合功能
- Go 計時器
- Go 進程觸發
- Go 進程執行
- Go hello world
- Go 可變長參數列表
- Go 命令行參數
- Go 命令行參數標記
- Go 排序
- Go 切片
- Go 請求處理頻率控制
- Go 時間
- Go 時間戳
- Go 時間格式化和解析
- Go 數字解析
- Go 隨機數
- Go 通道的同步功能
- Go 通道方向
- Go 通道緩沖
- Go 通道選擇Select
- Go 寫入文件
- Go 信號處理
- Go 原子計數器
- Go 正則表達式
- Go 指針