【问题标题】:Add milliseconds to timestamp (bash, unix)将毫秒添加到时间戳(bash,unix)
【发布时间】:2013-06-22 19:49:06
【问题描述】:

编辑:这显然是不可能的,请参阅下面的 Barmars 回答。

我经常使用下面的命令来创建用于存档的时间戳。我想在字符串中添加毫秒。那可能吗?我在 osx 和 linux 上都使用这个脚本,所以一个适用于两者的解决方案会很好。秒是否在有或没有毫秒的情况下向上或向下舍入? (分钟是向上还是向下取整?)

date -n +%Y%m%d%H%M%S

【问题讨论】:

    标签: linux bash unix time terminal


    【解决方案1】:

    我不认为有办法做到这一点便携。请参阅POSIX strftime specification,它没有提及毫秒或纳秒。

    此外,strftime 的输入是 struct tm。这个结构的规范是here,它不包括比秒更精确的任何东西。纳秒在timespec 结构中,但这主要用于时间段,而不是时钟时间,并且系统不需要将时钟时间保持在秒以上的分辨率。

    【讨论】:

      【解决方案2】:

      一般你不能,但我想我会提到在ts 中,你可以使用“%.S”来获得毫秒精度。以防万一您使用 date 为输出行添加时间戳。

      【讨论】:

        【解决方案3】:

        %N 为您提供纳秒,您可以将其除以 1000000

        【讨论】:

        • 在 osx 终端 "date -n +%Y%m%d%H%M%S%N" 给我 "20130625224326N" 是因为 bash 版本太旧了吗?
        • bash 的版本和这个有什么关系?这是date 命令。
        • 我不认为 %N 是可移植的,它不在 OS X strftime() 手册页中。
        • @Tor 我只是假设它适用于 osx,你能升级你的 date 命令吗?
        • 我认为从纳秒中得到毫秒,除以1e6 可能更有用,而不是相乘...除非你真的想要飞秒...
        【解决方案4】:

        您可以尝试%3N,它适用于 Windows 和 Debian 9 的 git bash。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-06-25
          • 1970-01-01
          • 2011-12-30
          • 1970-01-01
          • 1970-01-01
          • 2013-04-18
          • 2018-10-10
          • 1970-01-01
          相关资源
          最近更新 更多