go语言中常用的功能之二(time时间日期的使用)

go语言中日期的格式化

1. 获取当前时间

t := time.Now()
fmt.Println(t)

2. 格式化时间

ft := t.Format("2006-01-02 15:04:05") // 2006-01-02 15:04:05 这里面的数字不能更改
fmt.Println(ft)  //2019-01-21 11:40:20
ft = t.Format("2006/01/02") //2019/01/21
fmt.Println(ft)

3. 根据已有时间字符串重新格式化

inputDate := "2018-12-21 09:21:25"
nnt, _ := time.Parse("2006-01-02 15:04:05",inputDate)
fmt.Println(nnt.Format("2006/01/02 15:04:05"))

4. 设置时区

一般不用设置

inputDate = "12-18-2018 09:21:25"
loc , _ := time.LoadLocation("Asia/Shanghai")
nnt2, _ := time.ParseInLocation("01-02-2006 15:04:05",inputDate,loc)
fmt.Println(nnt2.Format("2006/01/02 15:04:05"))

5. 获取当前时间的年月日时分秒

tt := time.Now()
fmt.Println(tt.Year())
fmt.Println(tt.Month()) // 这里输出的是英文的月
month := fmt.Sprintf("%d",tt.Month())
fmt.Println(month) //这里转成数字了
fmt.Println(tt.Day())
fmt.Println(tt.Hour())
fmt.Println(tt.Minute())
fmt.Println(tt.Second())3. 根据已有时间字符串重新格式化
inputDate := "2018-12-21 09:21:25"
nnt, _ := time.Parse("2006-01-02 15:04:05",inputDate)
fmt.Println(nnt.Format("2006/01/02 15:04:05"))

6.时间戳与日期间的相互转换

t1 := time.Now().UnixNano() //纳秒
time.Sleep(2 * time.Second)
t2 := time.Now().UnixNano()
fmt.Println(t2-t1)

t3 := "2021-12-31 23:59:59"
t4 := "2008-08-03 10:30:00"
temp := "2006-01-02 15:04:05"
time3 ,_ :=time.Parse(temp,t3)
time4 ,_ :=time.Parse(temp,t4)
res := int64(math.Abs(float64(time4.Unix()-time3.Unix()))) //秒
fmt.Println(res)

时间戳转日期

temp := "2006-01-02 15:04:05"
timestamp := time.Now().Unix()  //当前时间戳
dates := time.Unix(timestamp,0) //时间戳转日期
fmt.Println(dates.Format(temp)) //日期格式化

猜你喜欢

转载自blog.csdn.net/wujiangwei567/article/details/86573661
今日推荐