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脚本的更多相关文章

  1. Shell脚本编程学习入门 02

    Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行):   #! ...

  2. Linux系统——shell脚本

    shell脚本编程 作用:通过命令行解析的方式,自动执行设定好的程序或命令代码.(若将脚本挂到定时任务中,就会自动在非工作时间里自动触发执行程序) Shell脚本文件以“.sh”结尾 规范的Shell ...

  3. shell脚本介绍、shell脚本结构和执行、date命令用法、shell脚本中的变量

    7月11日任务 20.1 shell脚本介绍20.2 shell脚本结构和执行20.3 date命令用法20.4 shell脚本中的变量 20.1 shell脚本介绍 1.shell脚本语言是linu ...

  4. Shell脚本基础学习

    Shell脚本基础学习 当你在类Unix机器上编程时, 或者参与大型项目如k8s等, 某些框架和软件的安装都是使用shell脚本写的. 学会基本的shell脚本使用, 让你走上人生巅峰, 才怪. 学会 ...

  5. Linux shell脚本重试机制

    重试机制在实际编程场景中应用比较场景,比如你的任务在请求一个正在写入数据但不确定什么时间会完成的文件,可能就需要通过尝试机制间隔一段时间重新执行任务. 以下 shell 脚本是实现重试机制的模板: # ...

  6. java UTC时间和local时间相互转换

    java UTC时间和local时间相互转换 1.local时间转UTC时间 /** * local时间转换成UTC时间 * @param localTime * @return */ public ...

  7. shell脚本-获取时间

    获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用 ...

  8. Python: 处理mongodb文档,怎么让UTC时间转换为本地时间?

    存储数据到MongoDB数据库时,一般我们会加一个更新数据的时间update_time.这时在python代码中 会用到datetime模块以便获取当前系统时间,但是存入到MongoDB数据库时,存储 ...

  9. 时间:UTC时间、GMT时间、本地时间、Unix时间戳

    转自:http://blog.csdn.net/u012102306/article/details/51538574 1.UTC时间 与 GMT时间 我们可以认为格林威治时间就是时间协调时间(GMT ...

  10. Python中如何把一个UTC时间转换为本地时间

    需求: 将20141126010101格式UTC时间转换为本地时间. 在网上搜了好长时间都没有找到完美的解决方案.有的引用了第三方库,这就需要在现网安装第三方的软件.这个是万万不可的.因为真实环境不一 ...

随机推荐

  1. VulNyx - System

    扫描发现 2121是ftp端口 8000 http的一个端口 6379redis端口 爆破redis的密码 爆破出来时bonjour 猜测ftp的密码和redis的密码是一样的 尝试用密码去爆出ftp ...

  2. angularjs和ajax的结合使用 (四)

    知道的朋友了解 我不是属于讲按部就班技术的那种人.什么xx入门 ,入门到精通,入门到入土. 其实非要严格说的话已经跟angularjs 什么ajax 偏的有点远了,之所以还是叫这个名称,因为都属于we ...

  3. dart子类的继承

    1 Dart中类的继承 1.子类使用extends关键字来继承父类 2.子类会继承父类里面可见的属性和方法,但是不会继承构造函数 3. 子类能够复写父类的方法 getter和setter方法 2Dar ...

  4. MySQL安装-centos7

    mysql centos7上安装有3中方法  1yum安装 2rpm安装 3编译安装 方法一 rpm安装 1.查找以前是否安装有mysql,使用下面命令:rpm –qa | grep -i mysql ...

  5. 三种方式从jdbc中获取数据库表字段信息

    一.整体代码 1.method1:执行select语句获取,select * from dims where 1 = 2 2.method2:执行show create table获取,show cr ...

  6. Luogu P3975 TJOI2015 弦论 题解 [ 紫 ] [ 后缀自动机 ] [ 动态规划 ] [ 拓扑排序 ]

    弦论:本来不想写板子题题解的,但奈何这道题的题解都太垃圾了,导致我理解了一个晚上都没想明白 dp 转移啥意思/fn/fn/fn,所以记录一下. 思路 \(t=0\) 时 考虑 SAM 思路,建出后缀自 ...

  7. flutter-真机调试ios Traceback (most recent call last)

    1 Traceback (most recent call last): 2 File "/tmp/C5FDB25B-C7F4-462E-8AC9-7FF9D1A50F21/fruitstr ...

  8. mybatis - [04] mapper文件详解

      Mybatis的Mapper文件(通常是以.xml为扩展名的文件)主要用于定义SQL语句和它们与Java接口方法之间的映射关系.以下是Mapper文件中一些常用的配置元素和属性. 一.mapper ...

  9. 大数据之路Week08_day02 (Flume架构介绍和安装)

    Flume架构介绍和安装 写在前面在学习一门新的技术之前,我们得知道了解这个东西有什么用?我们可以使用它来做些什么呢?简单来说,flume是大数据日志分析中不能缺少的一个组件,既可以使用在流处理中,也 ...

  10. 初探本地DeepSeek VL + Typescript + FFMPEG:提取视频关键帧分析内容

    初探本地DeepSeek VL + Typescript + FFMPEG:提取视频关键帧分析内容 前言 随着人工智能和计算机视觉技术的发展,利用图像识别来分析视频内容已经成为现实.本文的主要目标是: ...