go get -u "github.com/jialanli/lacia/utils"
一键开启舒适!简单使人愉快!
目录
比较两个时间
日期字符串转日期
日期字符串转时间戳
时间戳转日期
时间戳转对应日期零时字符串
时间戳转对应日期实际字符串
给定日期字符串获取指定时间之后的日期
比较两个时间
支持整体为年>月>日顺序的任意时间格式相比较,前提是输入的两个参数格式相同,可输入的格式有:
YYYYMMDD、YYYY-MM-DD、YYYY/MM/DD、YYYY:MM:DD HH:mm:ss、YYYY:MM:DD HH:mm、YYYY-MM-DD HH-mm、YYYYMM、YYYY、YYYY/MM/DD HH:mm:ss等等。。。
fmt.Println("compare 20201001 and 20201001: ", lacia.CompareTwoStrTime("20201001", "20201001")) // 0
fmt.Println("compare 20201002 and 20211001: ", lacia.CompareTwoStrTime("20201002", "20211001")) // 2
fmt.Println("compare 20201102 and 20201001: ", lacia.CompareTwoStrTime("20201102", "20201001")) // 1
fmt.Println("compare 202101 and 202010: ", lacia.CompareTwoStrTime("202101", "202010")) // 1
fmt.Println("compare 2021 and 2020: ", lacia.CompareTwoStrTime("2021", "2020")) // 1
fmt.Println("compare 2021-01-01 and 2020-12-01: ", lacia.CompareTwoStrTime("2021-01-01", "2020-12-01")) // 1
fmt.Println("compare 2020-12-01 and 2021-12-01: ", lacia.CompareTwoStrTime("2020-12-01", "2021-12-01")) // 2
更多实例可详见对应单元测试哦~
日期字符串转日期
t1, errs := lacia.GetTimeByStr("2020-10-01")
fmt.Println(t1,errs) // 2020-10-01 00:00:00 +0000 UTC
t2, errs := lacia.GetTimeByStr("20201031")
fmt.Println(t2,errs) // 2020-10-31 00:00:00 +0000 UTC
t5, errs := lacia.GetTimeByStr("202110a1") // error
fmt.Println(t5,errs) // 0001-01-01 00:00:00 +0000 UTC input timeStr format error
日期字符串转时间戳
s1, err := lacia.GetTsByTimeStr("2020-10-01 00:05:05")
fmt.Println(s1, err) //1601481905
s2, err := lacia.GetTsByTimeStr("2020-10-00 00:05:05")
fmt.Println(s2, err) //-1 parsing time "2020-10-00 00:05:05": day out of range
时间戳转日期
tm := lacia.GetTimeByTs(1602133570)
fmt.Println(tm) //2020-10-08 13:06:10 +0800 CST
tm = lacia.GetTimeByTs(1602086400)
fmt.Println(tm) //2020-10-08 00:00:00 +0800 CST
时间戳转对应日期零时字符串
fmt.Println(lacia.GetTimeStrOfDayZeroByTs(1602133570)) // 2020-10-08 00:00:00
fmt.Println(lacia.GetTimeStrOfDayZeroByTs(1601481600)) // 2020-10-01 00:00:00
时间戳转对应日期实际字符串
fmt.Println(lacia.GetTimeStrOfDayTimeByTs(1602133570)) //2020-10-08 13:06:10
fmt.Println(lacia.GetTimeStrOfDayTimeByTs(1602086400)) //2020-10-08 00:00:00
给定日期字符串获取指定时间之后的日期
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 1, 0)) // 2020-11-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 0, 5)) //2020-10-06 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 2, 1)) // 2020-12-02 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 3, 0)) // 2021-01-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, 0)) // 2020-09-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, -1)) //2020-08-31 00:00:00 +0000 UTC
s1, err := lacia.GetTsByTimeStr("2020-10-01 00:05:05")
fmt.Println(s1, err) //1601481905
s2, err := lacia.GetTsByTimeStr("2020-10-00 00:05:05")
fmt.Println(s2, err) //-1 parsing time "2020-10-00 00:05:05": day out of range
时间戳转日期
tm := lacia.GetTimeByTs(1602133570)
fmt.Println(tm) //2020-10-08 13:06:10 +0800 CST
tm = lacia.GetTimeByTs(1602086400)
fmt.Println(tm) //2020-10-08 00:00:00 +0800 CST
时间戳转对应日期零时字符串
fmt.Println(lacia.GetTimeStrOfDayZeroByTs(1602133570)) // 2020-10-08 00:00:00
fmt.Println(lacia.GetTimeStrOfDayZeroByTs(1601481600)) // 2020-10-01 00:00:00
时间戳转对应日期实际字符串
fmt.Println(lacia.GetTimeStrOfDayTimeByTs(1602133570)) //2020-10-08 13:06:10
fmt.Println(lacia.GetTimeStrOfDayTimeByTs(1602086400)) //2020-10-08 00:00:00
给定日期字符串获取指定时间之后的日期
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 1, 0)) // 2020-11-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 0, 5)) //2020-10-06 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 2, 1)) // 2020-12-02 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 3, 0)) // 2021-01-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, 0)) // 2020-09-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, -1)) //2020-08-31 00:00:00 +0000 UTC
fmt.Println(lacia.GetTimeStrOfDayZeroByTs(1602133570)) // 2020-10-08 00:00:00 fmt.Println(lacia.GetTimeStrOfDayZeroByTs(1601481600)) // 2020-10-01 00:00:00
时间戳转对应日期实际字符串
fmt.Println(lacia.GetTimeStrOfDayTimeByTs(1602133570)) //2020-10-08 13:06:10
fmt.Println(lacia.GetTimeStrOfDayTimeByTs(1602086400)) //2020-10-08 00:00:00
给定日期字符串获取指定时间之后的日期
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 1, 0)) // 2020-11-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 0, 5)) //2020-10-06 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 2, 1)) // 2020-12-02 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 3, 0)) // 2021-01-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, 0)) // 2020-09-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, -1)) //2020-08-31 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 1, 0)) // 2020-11-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 0, 5)) //2020-10-06 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 2, 1)) // 2020-12-02 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, 3, 0)) // 2021-01-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, 0)) // 2020-09-01 00:00:00 +0000 UTC
fmt.Println(lacia.GetPreferTimeByTimeStrAndDifference("20201001", 0, -1, -1)) //2020-08-31 00:00:00 +0000 UTC



