標準庫time中的常用時間轉換方法
摘要:package main
import (
"fmt"
"time"
)
func main() {
//1、指定年月日時分秒,建立一個時間
oneDay := time.Date(2019, 3,6, 22, 20, 0, 0, time...
package main import ( "fmt" "time" ) func main() { //1、指定年月日時分秒,建立一個時間 oneDay := time.Date(2019, 3,6, 22, 20, 0, 0, time.Local) //2、指定當前時間 oneDay = time.Now() //3、輸出指定時間oneday的字串格式,如:20190306222400,年月日時分秒 //如果要輸出如:2019-03-06 22:27:27,則format是:%04d-%02d-%02d %02d:%02d:%02d dayStr := fmt.Sprintf("%04d%02d%02d%02d%02d%02d", oneDay.Year(), oneDay.Month(), oneDay.Day(), oneDay.Hour(), oneDay.Minute(), oneDay.Minute()) fmt.Println(dayStr) //還有一種更簡單的方式,如:這裡的模板時間20060102150405中的時間是固定的,只能是時間2019-04-02 15:04:05的各種組合。 dayStr1 := oneDay.Format("20060102150405") fmt.Println("dayStr1 =", dayStr1)//dayStr1 = 20190306232012 //4、將指定時間的字串,轉換成時間Time型別,如,將"2019-04-02 15:04:05"轉換成Time型別的值 //注意:這裡layout中的模板,可以隨意編寫(參考下面layout的各種變形),但時間必須是:2006-01-02 15:04:05,如果模板中用其他值,則最終拿到的結果是不對的。 layout := "2006-01-02 15:04:05" oneTime, _ := time.Parse(layout, "2019-04-02 15:04:05") fmt.Println("oneTime=", oneTime)//oneTime= 2019-04-02 15:04:05 +0000 UTC layout = "20060102150405" oneTime1, _ := time.Parse(layout, "20190306225000") fmt.Println("oneTime1=", oneTime1)//oneTime1= 2019-03-06 22:50:00 +0000 UTC layout = "010220061504" oneTime2, _ := time.Parse(layout, "030620192250") fmt.Println("oneTime2=", oneTime2)//oneTime2= 2019-03-06 22:50:00 +0000 UTC //5、使用1970到現在的unix時間戳建立一個時間Time oneTime3 := time.Unix(1551884600, 0) fmt.Println("oneTime3=", oneTime3)//oneTime3= 2019-03-06 23:03:20 +0800 CST //6、返回一個時間的unix時間戳,即秒值 s := oneTime3.Unix() fmt.Println("s=", s)//s= 1551884600 //7、返回一個時間的納秒時間戳,納秒時間戳是在unix時間戳後面加9位 ns := oneTime3.UnixNano() fmt.Println("ns=", ns)//ns= 1551884600000000000 //8、返回一個時間前後的日期,這種方法可以前後調整精確的時間 //返回一個日期三天半後的時間,一天86400秒 oneTime4 := oneTime3.Add(3.5 * 86400 * time.Second) fmt.Println("oneTime4 =", oneTime4)//oneTime4 = 2019-03-10 11:03:20 +0800 CST //返回一個日期三天前的時間,一天86400秒 oneTime5 := oneTime3.Add(-3 * 86400 * time.Second) fmt.Println("oneTime5 =", oneTime5)//oneTime5 = 2019-03-03 23:03:20 +0800 CST //9、給一個時間,增加或減去指定的幾年幾個月幾日,如,給一個時間增加三天,簡便方法是 oneTime6 := oneTime3.AddDate(0, 0, 3) fmt.Println("oneTime6 =", oneTime6)//oneTime6 = 2019-03-09 23:03:20 +0800 CST //增加一個月 oneTime7 := oneTime3.AddDate(0, 1, 0) fmt.Println("oneTime7 =", oneTime7)//oneTime7 = 2019-04-06 23:03:20 +0800 CST fmt.Println(oneDay) }