TSINGSEE青犀视频开发中Go语言时间转换分享
时间:2021-10-11
本文章向大家介绍TSINGSEE青犀视频开发中Go语言时间转换分享,主要包括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
}
原文地址:https://www.cnblogs.com/TSINGSEE/p/15394113.html
- Spring Boot 1.5.x新特性:动态修改日志级别
- XMPP客户端库Smack 4.0.6版开发之二
- Spring Cloud实战小贴士:版本依赖关系
- 如何优雅的用Python做接口自动化测试
- 忘记oracle的sys用户密码怎么修改以及Oracle 11g 默认用户名和密码
- hibernate链接数据库链接池c3p0配置
- Oracle中session和processes的设置
- ssh相关原理学习与常见错误总结
- PyQt5 GUI应用程序工具包入门(1)
- grpc部署初体验
- Java中的ReentrantLock和synchronized两种锁机制的对比
- 用Python从零开始创建区块链
- 基于 Python 的僵尸网络将 Linux 机器变成挖矿机器人
- Oracle导入导出常用命令
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Leetcode 409. 最长回文串 (Hash)
- Vue 前后端交互基础
- Spring Boot 入门
- Nginx 负载均衡
- Leetcode 289. 生命游戏(元胞自动机模拟)
- Nginx 简介
- 详解 Vue 目录及配置文件之 package.json
- Codeforces Round #382 (Div. 2) D. Taxes (数论 哥猜 大胆尝试)
- Vue Router
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 1) B. Bear and Blocks (技巧dp 难想)
- Codeforces 727D-T-shirts Distribution (字符串 贪心)
- 详解 Vue 目录及配置文件之 build 目录
- Linux 常见文件管理命令及目录结构(1)
- Java parseInt( ) 方法
- 详解 Vue 目录及配置文件之 node_modules,src,static,test 目录