小編給大家分享一下golang中的time模塊怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
打印當前時間戳
fmt.Println(time.Now().Unix())# 1389058332
str格式化時間
fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 這是個奇葩,必須是這個時間點, 據說是go誕生之日, 記憶方法:6-1-2-3-4-5# 2018-08-25 09:42:20時間戳轉str格式化時間
str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05")
fmt.Println(str_time)WAR包
the_time := time.Date(2014, 1, 7, 5, 50, 4, 0, time.Local) unix_time := the_time.Unix() fmt.Println(unix_time)# 1389045004
time.Parse格式化時間
the_time, err := time.Parse("2006-01-02 15:04:05", "2014-01-08 09:04:41")if err == nil {
unix_time := the_time.Unix()
fmt.Println(unix_time)
}# 1389171881在windows下,time.Parse()的時區和time.Format()的時區是一致的。但是在linux環境下,time.Parse()的默認時區是UTC(與我們使用的標準時間CST相差8個小時),time.Format()的時區默認是本地,兩者如果不處理好就會導致錯誤。具體可以做如下一個操作,找一臺linux主機,將其/etc/localtime由Shanghai更換為UTC,然后分別執行如下代碼,看下輸出的區別:
package main
import "time"import "fmt"func main(){
t, err := time.Parse("2006-01-02 15:04:05", "2017-12-03 22:01:02")
//localTime, err := time.ParseInLocation("2006-01-02 15:04:05", "2017-12-03 22:01:02", time.Local)if err != nil{
fmt.Println(err)return}
fmt.Println(t)
fmt.Println(time.Now())
fmt.Println(time.Now().Sub(t).Seconds())
}分別使用time.Parse和time.ParseInLocation分別算下兩個時間之間的差值,看下哪一個求出的值是正確的?
最后再給出一個輸出當前時間年、月、日、時等不同信息的示例代碼,如下:
package main
import("fmt""time")
func main(){
t := time.Now()
y,m,d := t.Date()
today := time.Now().Format("2006-01-02")
datetime := time.Now().Format("2006-01-02 15:04:05")//后面的參數是固定的 否則將無法正常輸出
fmt.Println("time is : ",t )
fmt.Println("y m d is : ",y,m,d )
fmt.Println("now is :",today)
fmt.Println("now is :",datetime)
}看完了這篇文章,相信你對“golang中的time模塊怎么用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。