当前位置: 首页 > 面试题库 >

将以秒为单位的时间跨度转换为Shell中的格式化时间

袁波
2023-03-14
问题内容

我有一个$ i变量,它在shell脚本中是秒,并且我试图将其转换为24小时HH:MM:SS。这在壳中可能吗?


问题答案:

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

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

说明:

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


 类似资料:
  • 问题内容: 我有一个名为 test_duration bigint(12) 的数据列。我将以秒为单位的时间存储到数据库中。现在,当我从表中获取记录时,我希望将时间转换为HH:MM:SS格式。我应该如何实现呢?提前致谢。 问题答案: 您可以使用 MySQL 函数SEC_TO_TIME()。 例子: 输出为: 因此,在您的情况下:

  • 问题内容: 我已使用ruby脚本将iso时间戳转换为纪元,我正在解析的文件具有以下时间戳结构: 由于我想保留毫秒,因此我使用了以下Ruby代码将其转换为纪元时间: 但是在python中,我尝试了以下操作: 但是我没有把原定的时间日期倒退, 我想知道这与我的格式化方式有关吗? 问题答案: 用途: 指令仅受支持,而不受。 UPDATE 替代使用,:

  • 问题内容: 我正在尝试将一个长值(从1970年1月1日经过的毫秒数,即Epoch)转换为格式时间。 我用作时间戳记的长值,是从log4j的日志记录事件字段获得的。 到目前为止,我已经尝试了以下操作,但失败了: 但我得到了不正确的值: 我该怎么办? 问题答案: 尝试这个: 有关该类接受的其他格式字符串的说明,请参见SimpleDateFormat。 请参见使用1200 ms输入的可运行示例。

  • 问题内容: 我的时间以毫秒为单位,我需要将其转换为ZonedDateTime对象。 我有以下代码 线 给我一个错误,说未为类型LocalDateTime定义方法millsToLocalDateTime 问题答案: 并且是不同的。 如果需要,您可以按照以下方式进行操作:

  • 问题内容: 如何将时间格式转换为固定的秒数? PS Time有时可能仅采用格式。 问题答案: 不需要任何东西: 而且,如果您不想使用正则表达式:

  • 问题内容: 我需要一个代码段,用于将以秒为单位的时间转换成某种人类可读的形式。该函数应接收一个数字并输出如下所示的字符串: 无需格式化,将采用硬编码格式。 问题答案: 在Royi的帮助下,我们获得了 以人类可读形式输出时间间隔的 代码: