找回密码
 立即注册
首页 业界区 安全 UTC时间与正常时间相互转换的shell脚本

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

伯斌 2025-6-11 15:32:57
UTC时间转换的shell脚本

前言        摸鱼感想
昨天被UTC时间,系统时间的转换的代码绕得有点晕,
最后,不饶了,我当天的任务是搞一个嵌入式测试而已!!!开摆!
于是在网上找了半天没找到合适的时间转换函数,我 &……#@##!#(#
再然后,两个shell脚本就诞生了       
上班写博客那不叫摸鱼,那叫技术总结!!!天天加班,我已经一个多月没写过总结啦
1.系统时间转换为UTC时间
  1. #!/bin/bash
  2. # 获取当前系统时间
  3. datetime=$(date "+%Y-%m-%d %H:%M:%S")
  4. # 转成 UTC 时间戳(秒)并减去 8 小时
  5. timestamp=$(date -d "$datetime" +%s)
  6. timestamp=$((timestamp - 8 * 3600))
  7. # 拆分高低位
  8. high=$(( (timestamp >> 16) & 0xFFFF ))
  9. low=$(( timestamp & 0xFFFF ))
  10. # 打印结果
  11. echo "系统当前时间(模拟RTC): $datetime"
  12. echo "UTC时间戳(秒): $timestamp"
  13. printf "高位: 0x%04X\n" "$high"
  14. printf "低位: 0x%04X\n" "$low"
  15. # ===================================================
  16. # ===================================================
  17. # 用法示例:
  18. # 1) chmod +x ./hex_to_time.sh
  19. # 2)./hex_to_time.sh 0x67FF 0xD400
复制代码
2.UTC时间转换为人类时间

我不是人类
[code]#!/bin/bash# 检查参数数量if [ $# -ne 2 ]; then  echo "用法: $0  "  echo "例如: $0 0x6800 0x3A72"  exit 1fi# 读取输入的高低位参数high_hex=$1low_hex=$2# 将十六进制转为十进制high=$((high_hex))low=$((low_hex))# 合并成 32 位时间戳timestamp=$(( (high
您需要登录后才可以回帖 登录 | 立即注册