Go 提供廣泛的時間和持續時間支援;以下是一些範例。
|
|
|

package main
|
|
import (
"fmt"
"time"
)
|
|
func main() {
p := fmt.Println
|
我們將從取得目前時間開始。
|
now := time.Now()
p(now)
|
您可以提供年份、月份、日期等資訊來建立 time 結構。時間總會與 Location (即時區)關聯在一起。
|
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())
|
星期一到星期日的 Weekday 也可使用。
|
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))
}
|