UTC时间与正常时间相互转换的shell脚本

UTC时间转换的shell脚本


前言 摸鱼感想

昨天被UTC时间,系统时间的转换的代码绕得有点晕,
最后,不饶了,我当天的任务是搞一个嵌入式测试而已!!!开摆!
于是在网上找了半天没找到合适的时间转换函数,我 &......#@##!#(#
再然后,两个shell脚本就诞生了
上班写博客那不叫摸鱼,那叫技术总结!!!天天加班,我已经一个多月没写过总结啦


1.系统时间转换为UTC时间

bash 复制代码
#!/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时间转换为人类时间

我不是人类

bash 复制代码
#!/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
相关推荐
2035去旅行14 小时前
ADB的底层原理
linux·adb·嵌入式·arm·soc
Zwawa2 天前
让屏幕动起来:OLED动画效果,丝滑光标、帧动画和一只贪吃蛇
c语言·单片机·嵌入式
俊俊几年的2 天前
动态规划(Dynamic Programming)详解:从入门到 LeetCode Hot 100
linux·c++·算法·leetcode·嵌入式·动态规划·c
feasibility.3 天前
LeCun团队世界模型JEPA首登无人机:9K参数模型,零样本Sim-to-Real飞入100Hz闭环
论文阅读·嵌入式·无人机·具身智能·世界模型·杨立昆·jpea
北京迅为3 天前
案例分享 | RK182X算力卡:多路视频VLM监控,四路画面AI同时看懂,一句人话说清现场
linux·人工智能·嵌入式·rk3588·算力卡·rk182x
Zwawa4 天前
嵌入式OLED表驱动菜单:用一张表、一个栈和一个窗口重写表驱动菜单
c语言·单片机·嵌入式
Zwawa4 天前
C语言函数指针与宏实战:从回调、表驱动菜单到X-Macro,讲透嵌入式代码解耦
c语言·单片机·嵌入式
Zwawa5 天前
用两个按键做一个OLED菜单:先把选择和执行分开
c语言·单片机·嵌入式
小李不想当小白6 天前
HAL库之UART(STM32 HAL库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
Zwawa7 天前
屏幕不止一种:OLED、LCD1602字符屏、TFT/IPS图形屏和串口屏怎么用,这与TTY和PTY又有什么关系
c语言·单片机·嵌入式