如何将 Linux 硬件(hwclock)时钟的时间更改为 24 小时格式?

如何将 Linux 硬件(hwclock)时钟的时间更改为 24 小时格式?

目前,我的硬件时钟返回日期/时间(hwclock --show),如下所示:

Sat 28 Jul 2018 08:47:47 PM BST .659124 seconds

日期返回:

Sat Jul 28 21:23:13 BST 2018

我想将硬件时钟的时间更改为 24 小时格式,并将日期格式更改为与硬件时钟的日期/时间格式相匹配。

我搜索了所有地方,但没有找到关于在 Linux 系统上管理日期和时间(即短日期、中日期和长日期,区域格式如 DD-MM-YYYY 或 DD/MM/YY)的详尽文档,尤其是在命令行环境中。

我已经手动输入了时钟和日期。它们没有帮助。我也知道之前有人问过一组类似的问题。我看过它们,它们也没有帮助。

有人能帮我解答上面提到的具体问题吗?或者给我提供一些详细的文档,讨论如何在命令行环境中处理不同地区的多个日期/时间场景?提前谢谢了。

答案1

您可以让它date为您完成工作:该-d选项允许您以“大多数自由格式的人类可读日期字符串”指定日期(来自man date)。

不幸的是,该格式不够自由,无法接受输出hwclock,但是如果删除指定秒的分数的最后一个字段,它就可以正常工作:

date -d "$(hwclock|sed 's/  \..*$//g')"

我测试过,但没有找到秒的零分位数时的格式,所以我不知道它是否会显示相同的格式,例如Sat 28 Jul 2018 08:47:47 PM BST .000000 seconds。如果没有小数点,sed则需要再次替换。

假设时区后面仍然有一个双空格,则下面的方法可以起作用:

date -d "$(hwclock|sed 's/  .*$//g')"

您可以将其设为一个 shell 脚本或者一个以类似的格式定义的~/.bashrc函数。hwclockdfdate

相关内容