golang 的time包之time

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

先看看有哪些類型

Time

時間類型,包含了秒和納秒以及Location

Month

type Month int 月份.定義了十二個月的常量

Weekday

type Weekday int 周,定義了一周的七天

Duration

type Duration int64 期間.定義了以下期間類型.多用於時間的加減 需要傳入Duration做為參數的時候.可以直接傳入time.Second

const (Nanosecond  Duration = 1Microsecond          = 1000 * NanosecondMillisecond          = 1000 * MicrosecondSecond               = 1000 * MillisecondMinute               = 60 * SecondHour                 = 60 * Minute)

Location

在time包裡有兩個時區變數:

  • time.UTC utc時間
  • time.Local 本地時間

FixedZone(name string, offset int) *Location
設定時區名,以及與UTC0的時間偏差.返回Location

時間格式化

Format(layout string) string
傳入目標模板(Mon Jan 02 15:04:05 -0700 2006).時間以這個為準
p(t.Format("3:04PM"))p(t.Format("Mon Jan _2 15:04:05 2006"))p(t.Format("2006-01-02T15:04:05.999999-07:00"))p(t.Format("2006-01-02T15:04:05Z07:00"))fmt.Printf("%d-%02d-%02dT%02d:%02d:%02d-00:00\n",t.Year(), t.Month(), t.Day(),t.Hour(), t.Minute(), t.Second())
Parse(layout, value string) (Time, error)
將字元竄轉換為Time類型.
p := fmt.PrintlnwithNanos := "2006-01-02 15:04:05"t, _ := time.Parse(withNanos, "2013-10-05 18:30:50")p(t.Year())
ParseDuration(s string) (Duration, error)
將字duration符竄("ns", "us" (or "碌s"), "ms", "s", "m", "h".)轉換為Duration類型.就是納秒
p := fmt.Printlnt, _ := time.ParseDuration("1h")p(t.Seconds())

Time相關

time常用函數

Now() Time
擷取目前時間,返回Time類型
Unix(sec int64, nsec int64) Time
根據秒數和納秒,返回Time類型
Date(year int, month Month, day, hour, min, sec, nsec int, loc *Location) Time
設定年月日返回,Time類型
Since(t Time) Duration
返回與目前時間的時間差

time常用方法

After(u Time) bool
時間類型比較,是否在Time之後
Before(u Time) bool
時間類型比較,是否在Time之前
Equal(u Time) bool
比較兩個時間是否相等
IsZero() bool
判斷時間是否為零值,如果sec和nsec兩個屬性都是0的話,則該時間類型為0
Date() (year int, month Month, day int)
返回年月日,三個參數
Year() int
返回年份
Month() Month
返回月份.是Month類型
Day() int
返回多少號
Weekday() Weekday
返回星期幾,是Weekday類型
ISOWeek() (year, week int)
返回年份,和該填是在這年的第幾周.
Clock() (hour, min, sec int)
返回小時,分鐘,秒
Hour() int
返回小時
Minute() int
返回分鐘
Second() int
返回秒數
Nanosecond() int
返回納秒
Add(d Duration) Time
為一個時間,添加的時間類型為Duration.更精確到納秒.比起AddDate
Sub(u Time) Duration
計算兩個時間的差.傳回型別Duration
AddDate(years int, months int, days int) Time
添加時間.以年月日為參數
UTC() Time
設定location為UTC,然後返回時間.就是utc為0.比中國晚了八個小時.
Local() Time
設定location為本地時間.就是電腦時間.
In(loc *Location) Time
設定location為指定location
Location() *Location
擷取時間的Location,如果是nic,返回UTC,如果為空白,則代表本地
Zone() (name string, offset int)
返回時區,以及與utc的時間偏差
Unix() int64
返回時間戳記,自從1970年1月1號到現在
UnixNano() int64
返回時間戳記.包含納秒
func main() {    now := time.Now()    secs := now.Unix()    nanos := now.UnixNano()    fmt.Println(now)    millis := nanos / 1000000    fmt.Println(secs)    fmt.Println(millis)    fmt.Println(nanos)    fmt.Println(time.Unix(secs, 0))    fmt.Println(time.Unix(0, nanos))}
GobEncode() ([]byte, error)
編碼為gob
GobDecode(buf []byte) error
從gob解碼
MarshalJSON() ([]byte, error)
編列為json
UnmarshalJSON(data []byte) (err error)
解碼為json
func main() {p := fmt.Printlnnow := time.Now()p(now)d := time.Duration(7200 * 1000 * 1000 * 1000)p(d)then := time.Date(2013, 1, 7, 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())p(then.Weekday())p(then.Before(now))p(then.After(now))p(then.Equal(now))p(then.Date())p(then.ISOWeek())p("----------")p(now.UTC())p(now.Local())p(now.Location())p(now.Zone())p(now.Unix())p(time.Unix(now.Unix(), 0))p(now.UnixNano())p(time.Unix(0, now.UnixNano()))p(now.GobEncode())p(now.MarshalJSON())p(time.Since(now))p("----------")diff := now.Sub(then)p(diff)p(diff.Hours())p(diff.Minutes())p(diff.Seconds())p(diff.Nanoseconds())p(then.Add(diff))p(then.Add(-diff))p(d)p(d.Hours())p(d.Minutes())p(d.Seconds())p(d.Nanoseconds())p(then.Add(d))}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.