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

标签 linux shell timespan date-formatting

我有一个 $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 部分,这很合适!

关于linux - 将时间跨度(以秒为单位)转换为 shell 中的格式化时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13422743/

相关文章:

linux - 如何一起使用 git log 和 grep?

c - 为什么 fork() 打印输出两次?

linux - 我们可以从文件中执行 grep 和 sed 并将输出推送到变量中吗

PHP-Fpm.d 与 nginx ,如何在 shell exec 中运行 sudo

angularjs - 在 Angularjs 列表中显示 TimeSpan 类型数据

linux - 如何在 Pressmatic 上用 PHP 启用 SOAP 客户端

python - 在 shell 中运行 python 的脚本

node.js - 我可以在后台运行 Node.js 命令行应用程序并通过按键调用它吗?

c# - 时间跨度的总和差异,按每年的旅行天数排序