目前,我的硬件时钟返回日期/时间(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
函数。hwclockdf
date