時間,時間戳,時間的格式化和解析_第1頁
時間,時間戳,時間的格式化和解析_第2頁
時間,時間戳,時間的格式化和解析_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、時間,時間戳,時間的格式化和解析時間代碼實例/ Go 對時間和時間段提供了大量的支持; 這里是一些例子。package mainimport "fmt"import "time"func main() p := fmt.Println/ 得到當前時間。now := time.Now()p(now)/ 通過提供年月日等信息,你可以構(gòu)建一個time 。時間總/ 是關(guān)聯(lián)著位置信息,例如時區(qū)。then := time.Date(2009, 11, 17, 20, 34, 58, 651387237, time.UTC)p(then)/ 你可以提取出時間的各個組成

2、部分。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 :=

3、 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)運行程序$ go run time.go2012-10-31 15:50:13.793654 +0000 UTC2009-11-17 20:34:58.651387237 +0000 UTC2009November17203458

4、651387237UTCTuesdaytruefalsefalse25891h15m15.142266763s25891.254206185211.5534752523711128e+069.320851514226677e+072012-10-31 15:50:13.793654 +0000 UTC2006-12-05 01:19:43.509120474 +0000 UTC# 下面我們將看到時間到 Unix 時間的相關(guān)概念。時間戳代碼實例/ 一般程序會有獲取 Unix 時間/ 的秒數(shù),毫秒數(shù),或者微秒數(shù)的需要。 來看看如何用 Go 來實現(xiàn)。package mainimport "

5、fmt"import "time"func main() / 分別使用帶Unix或者UnixNano的time.Now/ 來獲取從自 協(xié)調(diào)世界時/ 起到現(xiàn)在的秒數(shù)或者納秒數(shù)。now := time.Now()secs := now.Unix()nanos := now.UnixNano()fmt.Println(now)/ 注意UnixMillis是不存在的,所以要得到毫秒數(shù)的話,/ 你要自己手動的從納秒轉(zhuǎn)化一下。millis := nanos / 1000000fmt.Println(secs)fmt.Println(millis)fmt.Println(nan

6、os)/ 你也可以將協(xié)調(diào)世界時起的整數(shù)秒或者納秒轉(zhuǎn)化到相應(yīng)的時間。fmt.Println(time.Unix(secs, 0)fmt.Println(time.Unix(0, nanos)運行程序$ go run epoch.go2012-10-31 16:13:58.292387 +0000 UTC13517000382012-10-31 16:13:58 +0000 UTC2012-10-31 16:13:58.292387 +0000 UTC# 下面我們將看看另一個事件相關(guān)的任務(wù):時間格式化和解析。時間的格式化和解析代碼實例/ Go 支持通過基于描述模板的時間格式化和解析。package

7、 mainimport "fmt"import "time"func main() p := fmt.Println/ 這里是一個基本的按照 RFC3339 進行格式化的例子,使用/ 對應(yīng)模式常量。t := time.Now()p(t.Format(time.RFC3339)/ 時間解析使用同 Format 相同的形式值。t1, e := time.Parse(time.RFC3339,"2012-11-01T22:08:41+00:00")p(t1)/ Format 和 Parse 使用基于例子的形式來決定日期格式,/ 一般你只要使

8、用 time 包中提供的模式常量就行了,但是你/ 也可以實現(xiàn)自定義模式。模式必須使用時間MonJan 2 15:04:05 MST 2006/ 來指定給定時間 /字符串的格式化 /解析方式。時間一定要按照/ 如下所示: 2006 為年, 15 為小時, Monday 代表星期幾,等等。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") form := "3 04 PM

9、"t2, e := time.Parse(form, "8 41 PM")p(t2)/ 對于純數(shù)字表示的時間,你也可以使用標準的格式化字/ 符串來提出出時間值得組成。fmt.Printf("%d-%02d-%02dT%02d:%02d:%02d-00:00n", t.Year(), t.Month(), t.Day(),t.Hour(), t.Minute(), t.Second()/ Parse 函數(shù)在輸入的時間格式不正確是會返回一個/ 錯誤。ansic := "Mon Jan _2 15:04:05 2006"_, e = time.Parse(ansic, "8:41PM")p(e)運行程序$ go run time-formatting-parsing.go2014-04-15T18:00:15-07:002012-11-01 22:08:41 +0000 +00006:00PMTue Apr 15 18:00:15 20142014-04-15T18:00:15.161182-07:000000-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論