UTC时间与正常时间相互转换的shell脚本
UTC时间转换的shell脚本
前言 摸鱼感想
昨天被UTC时间,系统时间的转换的代码绕得有点晕,
最后,不饶了,我当天的任务是搞一个嵌入式测试而已!!!开摆!
于是在网上找了半天没找到合适的时间转换函数,我 &……#@##!#(#
再然后,两个shell脚本就诞生了
上班写博客那不叫摸鱼,那叫技术总结!!!天天加班,我已经一个多月没写过总结啦
1.系统时间转换为UTC时间
#!/bin/bash
# 获取当前系统时间
datetime=$(date "+%Y-%m-%d %H:%M:%S")
# 转成 UTC 时间戳(秒)并减去 8 小时
timestamp=$(date -d "$datetime" +%s)
timestamp=$((timestamp - 8 * 3600))
# 拆分高低位
high=$(( (timestamp >> 16) & 0xFFFF ))
low=$(( timestamp & 0xFFFF ))
# 打印结果
echo "系统当前时间(模拟RTC): $datetime"
echo "UTC时间戳(秒): $timestamp"
printf "高位: 0x%04X\n" "$high"
printf "低位: 0x%04X\n" "$low"
# ===================================================
# ===================================================
# 用法示例:
# 1) chmod +x ./hex_to_time.sh
# 2)./hex_to_time.sh 0x67FF 0xD400
2.UTC时间转换为人类时间
我不是人类
#!/bin/bash
# 检查参数数量
if [ $# -ne 2 ]; then
echo "用法: $0 <高16位hex> <低16位hex>"
echo "例如: $0 0x6800 0x3A72"
exit 1
fi
# 读取输入的高低位参数
high_hex=$1
low_hex=$2
# 将十六进制转为十进制
high=$((high_hex))
low=$((low_hex))
# 合并成 32 位时间戳
timestamp=$(( (high << 16) | low ))
# 输出 UTC 时间戳
echo "合并时间戳(UTC): $timestamp"
# 本地时间(用于 RTC 显示)
# 如果需要添加时差,在这里操作timestamp
timestamp_local=$((timestamp))
# 格式化为人类时间
date_str=$(date -d "@$timestamp_local" "+%Y-%m-%d %H:%M:%S")
echo "本地时间(UTC+8): $date_str"
# ===================================================
# ===================================================
# 用法示例:
# 1)chmod +x rtc_to_hex.sh
# 2)./rtc_to_hex.sh
UTC时间与正常时间相互转换的shell脚本的更多相关文章
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- Linux系统——shell脚本
shell脚本编程 作用:通过命令行解析的方式,自动执行设定好的程序或命令代码.(若将脚本挂到定时任务中,就会自动在非工作时间里自动触发执行程序) Shell脚本文件以“.sh”结尾 规范的Shell ...
- shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量
7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...
- Shell脚本基础学习
Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...
- Linux shell脚本重试机制
重试机制在实际编程场景中应用比较场景,比如你的任务在请求一个正在写入数据但不确定什么时间会完成的文件,可能就需要通过尝试机制间隔一段时间重新执行任务. 以下 shell 脚本是实现重试机制的模板: # ...
- java UTC时间和local时间相互转换
java UTC时间和local时间相互转换 1.local时间转UTC时间 /** * local时间转换成UTC时间 * @param localTime * @return */ public ...
- shell脚本-获取时间
获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...
- Python: 处理mongodb文档,怎么让UTC时间转换为本地时间?
存储数据到MongoDB数据库时,一般我们会加一个更新数据的时间update_time.这时在python代码中 会用到datetime模块以便获取当前系统时间,但是存入到MongoDB数据库时,存储 ...
- 时间:UTC时间、GMT时间、本地时间、Unix时间戳
转自:http://blog.csdn.net/u012102306/article/details/51538574 1.UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT ...
- Python中如何把一个UTC时间转换为本地时间
需求: 将20141126010101格式UTC时间转换为本地时间. 在网上搜了好长时间都没有找到完美的解决方案.有的引用了第三方库,这就需要在现网安装第三方的软件.这个是万万不可的.因为真实环境不一 ...
随机推荐
- [BZOJ P2771] 天才ACM
[BZOJ P2771] 天才ACM 传送门 朴素算法 枚举终点 \(r\),对区间 \([l, r]\) 排序求校验值 \(sum\),比较 \(sum\) 和 \(t\) $ sum \le t ...
- SQL Server与ORACLE数据库存储过程编写的几个不同之处
一直在使用SQL Server数库的存储过程进行业务数据处理,现在ORACLE上进行存储过程应用,感觉没有MSSQL的方便灵活,总结了以下几点区别: 1.入参数据类型不要书写长度.比如:userNam ...
- 云电脑:IO虚拟化实现的技术分析
本文分享自天翼云开发者社区<云电脑:IO虚拟化实现的技术分析>,作者:大利 云电脑是一种基于云计算技术的虚拟化电脑,它通过网络将物理硬件资源虚拟化成多个虚拟机,每个虚拟机都拥有独立的操作系 ...
- 浅谈HPC中的Lustre
本文分享自天翼云开发者社区<浅谈HPC中的Lustre>,作者:n****m 1. 什么是 lustre? Lustre 体系结构是一个为集群设计的存储体系结构. 其核心组件是运行在 Li ...
- Kali 安装谷歌拼音
Kali 安装谷歌拼音 1. 安装 Google 输入法 sudo apt install fcitx-googlepinyin 2. 重新启动系统 reboot 3. 打开开始菜单,搜索fcitx配 ...
- AtCoder [ABC351E] Jump Distance Sum 题解 [ 绿 ] [ 数学 ]
原题 场上差点就想出来了,就差一个旋转坐标轴了. 初步分析 首先来看如何判断两个点能不能走到,这可以看成下面的一张网格图,相同颜色的格子相互连通. 因此根据瞪眼法,可以把这些格子分为 $ (x_i + ...
- kvm远程管理
列出centos7中所有的虚拟机 [root@kvm1 ~]# virsh list --all Id Name State ------------------------------------- ...
- keycloak~认证与校验使用说明
主要内容 密码认证 授权码认证 哪个client申请的code,使用哪个client获取token 客户端认证 在kc开通了服务端帐号之后,可通过client_id和client_secret来获取t ...
- NFS服务器离线问题解决
NFS服务器离线问题解决 NFS服务器挂了会导致挂载的NFS客户端主机卡顿延迟,或者提示找不到文件 因为在执行一些命令的时候会自动去同步,用作同步的NFS服务端挂了,命令执行就会卡住 不过听说NFS还 ...
- 使用Bioaider进行本地blast
系统环境为windows11 1. 下载blast程序 https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ 双击安装,记住自己的 ...