TSINGSEE青犀视频开发中Go语言时间转换分享
在我们开发视频平台智能分析功能的过程中,系统的时间因素也是需要注意的。在很多实际业务中,需要大量处理视频或者分析结果的时间日期时区数据。我们多用golang来进行编译和开发,因此本文分享一下我们使用go中需要的各种日期和时间的转换。
1、毫秒转go time.Time类型;注意把毫秒转成纳秒,在转成go time.Time,这样就能取到年月日时分秒
func MsToTime(ms int64) time.Time {
tm := time.Unix(0, ms*int64(time.Millisecond))
//fmt.Println(tm.Format("2006-02-01 15:04:05.000"))
return tm
}
2、毫秒转成时间格式,如转:2021-14-14 14:00:00格式;需要注意的是必须为这个参数(”2006-02-01 15:04:05”)
func MsToTimeStr(ms int64) string {
t := MsToTime(ms)
return t.Format("2006-02-01 15:04:05")
}
3、把字符串日期(如:2021-14-14 14:00:00)格式转换成毫秒:
func ParseTimeStrToTimestamp(timeStr string, flag int) int64 {
var t int64
loc, _ := time.LoadLocation("Local")//此处必须要,不然转换有问题
if flag == 1 {
t1, _ := time.ParseInLocation("2006.01.02 15:04:05", timeStr, loc)
t = t1.UnixNano() / 1e6
} else if flag == 2 {
t1, _ := time.ParseInLocation("2006-01-02 15:04", timeStr, loc)
t = t1.UnixNano() / 1e6
} else if flag == 3 {
t1, _ := time.ParseInLocation("2006-01-02", timeStr, loc)
t = t1.UnixNano() / 1e6
} else if flag == 4 {
t1, _ := time.ParseInLocation("2006.01.02", timeStr, loc)
t = t1.UnixNano() / 1e6
} else {
t1, _ := time.ParseInLocation("2006-01-02 15:04:05", timeStr, loc)
t = t1.UnixNano() / 1e6
}
return t
}
4、获取前一天的日期算法:
//day参数为负数
func GetLastYMDH(day int) (y, m, d, h int, timestamp int64) {
now := GetCurrentNow()
tomorrow := now.AddDate(0, 0, day)
//lastTime := GetCurrentMillisecond() + day * 24 * 60 * 60 * 1000
//t := MsToTime(lastTime)
//Y := t.Year()
//M := t.Month()
//D := t.Day()
//H := t.Hour()
Y := tomorrow.Year()
M := tomorrow.Month()
D := tomorrow.Day()
H := tomorrow.Hour()
timestamp = tomorrow.UnixNano() / 1e6 //转毫秒
return Y, int(M), D, H, timestamp
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏