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".
unix时间戳转换日期格式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()
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。