package main
import (
"fmt"
"time"
)
func main() {
//获取当前时间
now := time.Now()
//时间转化为string
timeStr := now.Format("2006-01-02 15:04:05")
fmt.Println("日期类型当前时间: ", now)
fmt.Println("字符串类型当前时间: ", timeStr)
//string转化为时间
date, _ := time.Parse("2006-01-02 15:04:05", "2020-07-18 13:01:22")
fmt.Println("string转日期:", date)
//判断两个时间先后
flag := date.After(now)
if flag == true {
fmt.Println("2020-07-18 13:01:22在", timeStr, "之后")
} else {
fmt.Println("2020-07-18 13:01:22在", timeStr, "之前")
}
//之前和之后的时间
m, _ := time.ParseDuration("-20m")
m1 := now.Add(m)
fmt.Println("20分钟之前:", m1)
h, _ := time.ParseDuration("-8h")
h1 := now.Add(h)
fmt.Println("8小时之前", h1)
// 一天前
d, _ := time.ParseDuration("-24h")
d1 := now.Add(d)
fmt.Println(d1)
//计算两个时间差几秒
sec := now.Sub(m1)
fmt.Println(sec.Seconds(), "秒")
//计算两个时间差几分钟
minutes := now.Sub(m1)
fmt.Println(minutes.Minutes(), "分钟")
//计算两个时间差几小时
hours := now.Sub(h1)
fmt.Println(hours.Hours(), "小时")
//计算两个时间差几天
day := now.Sub(d1)
fmt.Println(day.Hours()/24, "天")
//注意:splite3数据库中字段如果是datetime类型获取数据时格式转换会有问题
//如2017-08-29 08:37:18这样的时间从数据库获取后会变成2017-08-29T08:37:18Z
//进行格式转化之后不能比较,所以需要将T和Z替换为" "
//不知道其他数据库有没有这样的问题
}