代码拉取完成,页面将自动刷新
package xtime
import (
"strconv"
"strings"
"time"
)
// 解析时间
// 时间字符串格式:2006-01-02 15:04:05
func ParseDateTime(timeStr string) (datetime time.Time) {
datetime, _ = time.ParseInLocation(TimeLayout, timeStr, time.Local)
return
}
// 解析日期
// 日期字符串格式:2006-01-02
func ParseDate(timeStr string) (date time.Time) {
date, _ = time.ParseInLocation(DateLayout, timeStr, time.Local)
return
}
// 格式化Datetime字符串
// 格式化前输入样式:2019-01-04T15:40:00Z 或 2019-01-04T15:40:00+08:00
// 格式化后返回样式:2019-01-04 15:40:00
func FormatDateTime(timeStr string) (formatTime string) {
if timeStr == "" {
return ""
}
replace := strings.Replace(timeStr, "T", " ", 1)
formatTime = replace[:19]
return
}
// 格式化Date成字符串
// 格式化前输入样式:2019-01-04T15:40:00Z 或 2019-01-04T15:40:00+08:00
// 格式化后返回样式:2019-01-04
func FormatDate(dateStr string) (formatDate string) {
if dateStr == "" {
return ""
}
split := strings.Split(dateStr, "T")
formatDate = split[0]
return
}
func DurationToUnit(duration time.Duration) string {
var (
t string
intNs = int64(duration)
)
if intNs >= 0 && intNs < int64(time.Second) {
t = strconv.FormatInt(intNs/int64(time.Millisecond), 10) + "ms"
}
// 大于等于 1秒,小于 1分钟
if intNs >= int64(time.Second) && intNs < int64(time.Minute) {
s := intNs / int64(time.Second)
ms := (intNs - s*int64(time.Second)) / int64(time.Millisecond)
t = strconv.FormatInt(s, 10) + "s"
if ms > 0 {
t += strconv.FormatInt(ms, 10) + "ms"
}
}
// 大于等于 1分钟,小于 1小时
if intNs >= int64(time.Minute) && intNs < int64(time.Hour) {
m := intNs / int64(time.Minute)
s := (intNs - m*int64(time.Minute)) / int64(time.Second)
t = strconv.FormatInt(m, 10) + "m"
if s > 0 {
t += strconv.FormatInt(s, 10) + "s"
}
}
// 大于等于 1小时,小于 1天
if intNs >= int64(time.Hour) && intNs < 24*int64(time.Hour) {
h := intNs / int64(time.Hour)
m := (intNs - h*int64(time.Hour)) / int64(time.Minute)
s := (intNs - h*int64(time.Hour) - m*int64(time.Minute)) / int64(time.Second)
t = strconv.FormatInt(h, 10) + "h"
if m > 0 {
t += strconv.FormatInt(m, 10) + "m"
}
if s > 0 {
t += strconv.FormatInt(s, 10) + "s"
}
}
// 大于等于 1天
if intNs >= 24*int64(time.Hour) {
d := intNs / (24 * int64(time.Hour))
h := (intNs - d*24*int64(time.Hour)) / int64(time.Hour)
m := (intNs - d*24*int64(time.Hour) - h*int64(time.Hour)) / int64(time.Minute)
s := ((intNs - m*int64(time.Minute)) % int64(time.Minute)) / int64(time.Second)
t = strconv.FormatInt(d, 10) + "d"
if h > 0 {
t += strconv.FormatInt(h, 10) + "h"
}
if m > 0 {
t += strconv.FormatInt(m, 10) + "m"
}
if s > 0 {
t += strconv.FormatInt(s, 10) + "s"
}
}
return t
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。