golang入門time與string轉換, time加減時間, 兩個時間差


package main

import (
"fmt"
"time"
)

var timeLayoutStr = "2006-01-02 15:04:05" //go中的時間格式化必須是這個時間
//var timeLayoutStr = 2006/01/02 03:04:05 //合法, 格式可以改變
//var timeLayoutStr = 2019/01/02 15:04:05 //不合法, 時間必須是2016年1月2號這個時間

func testFormat() {
t := time.Now() //當前時間
t.Unix() //時間戳

ts := t.Format(timeLayoutStr) //time轉string
fmt.Println(ts)
st, _ := time.Parse(timeLayoutStr, ts) //string轉time
fmt.Println(st)

//在go中, 可以格式化一個帶前后綴的時間字符串
prefixTStr := "PREFIX-- 2019-01-01 -TEST- 10:31:12 --SUFFIX" //帶前后綴的時間字符串
preTimeLayoutStr := "PREFIX-- 2006-01-02 -TEST- 15:04:05 --SUFFIX" //需要轉換的時間格式, 格式和前后綴需要一致, 這種寫法的限制很大, 但一些特殊場景可以用到
prefixTime, _ := time.Parse(preTimeLayoutStr, prefixTStr)
fmt.Println(prefixTime)

//時間加減 time.ParseDuration()
// such as "300ms", "-1.5h" or "2h45m".
// Valid time units are "ns", "us" (or "µs"), "ms", "s", "m", "h".
at, _ := time.ParseDuration("2h") //2個小時后的時間, 負數就是之前的時間
fmt.Println((t.Add(at)).Format(timeLayoutStr))

//兩個時間差
sub := t.Sub(prefixTime)
fmt.Println(sub.Seconds()) //秒, sub.Minutes()分鍾, sub.Hours()小時...

}

func main() {
testFormat()
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM