【问题标题】:How to get current timestamp of realtime-clock (RTC)?如何获取实时时钟(RTC)的当前时间戳?
【发布时间】:2018-09-27 17:06:37
【问题描述】:

我想在我的 BASH 脚本中获取实时时钟的当前时间戳。 hwclock 命令可以打印出当前时间,但不是时间戳。

我考虑过解析 hwclock 的输出,然后将结果转换为时间戳,但如果当前语言环境发生更改,hwclock 输出似乎会有所不同。因此,如果我将脚本提供给我的客户,他们可能会使用与我不同的语言环境,我的解析结果可能会出错(当然时间戳也会出错)。

所以我的问题是,从 RTC 获取时间戳的最佳方式是什么?提前致谢。

【问题讨论】:

  • 您的脚本可以硬编码语言环境;它不必使用从环境中继承的那个。
  • 感谢 chepner,如果没有更好的方法,那将是一个解决方案:-)
  • 为什么需要更好的解决方案?您不必全局设置语言环境,只需为解析时间戳的命令:LOCALE=whatever parseTime

标签: bash timestamp real-time-clock hwclock


【解决方案1】:

当您调用hwclock -D 时,您会得到如下输出,其中包含时间戳:

hwclock from util-linux 2.27.1
Using the /dev interface to the clock.
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2018/09/27 09:03:46
Hw clock time : 2018/09/27 09:03:46 = 1538039026 seconds since 1969
Time since last adjustment is 1538039026 seconds
Calculated Hardware Clock drift is 0.000000 seconds
Thu 27 Sep 2018 11:03:45 CEST  .749554 seconds

以下命令解析此输出以提取实际时间戳:

sudo hwclock -D | grep "Hw clock time" | sed "s/.* = \([0-9]\+\) seconds .*/\1/"

【讨论】:

    猜你喜欢
    • 2011-02-16
    • 2021-12-04
    • 2012-03-04
    • 2013-03-10
    • 2021-10-03
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多