linux - 将时间跨度(以秒为单位)转换为 shell 中的格式化时间

我有一个 $i 变量,它在 shell 脚本中是秒,我正在尝试将其转换为 24 HOUR HH:MM:SS。这在shell中可能吗?

最佳答案

这是一种有趣的 hacky 方法,可以完全满足您的需求 =)

date -u -d @${i} +"%T"

说明:

  • date 实用程序允许您从字符串中指定时间,以 1970-01-01 00:00:00 UTC 以来的秒数为单位,并以您指定的任何格式输出。
  • -u 选项用于显示 UTC 时间,因此它不考虑时区偏移(因为 1970 年的开始时间是 UTC)
  • 以下部分是 GNU date 特定的 (Linux):
    • -d 部分告诉date 接受来自字符串的时间信息,而不是使用now
    • @${i} 部分是告诉 date $i 以秒为单位的方式
  • +"%T" 用于格式化输出。从 man date 页面:%T 时间;与 %H:%M:%S 相同。由于我们只关心 HH:MM:SS 部分,这很合适!

https://stackoverflow.com/questions/13422743/

相关文章:

linux - Shell 脚本,回显消息后在同一行读取

linux - 须藤 : docker-compose: command not found

linux - 如何安排 tcpdump 在特定时间段内运行?

linux - 从命令行导入 PostgreSQL CSV

php - 使路径在 linux 和 Windows 上都有效

linux - 当命令太长时,命令行会自动覆盖

linux - 在 Ubuntu 中将目录添加到 PATH

python - os.walk 没有隐藏文件夹

linux - "In-source builds are not allowed"在 cmake

linux - Ubuntu 上的 DTrace,操作方法?