如果我想设置时间,我知道我可以使用这样的命令:
sudo date +%T -s '17:45:00'
它会将时钟设置为系统时区的下午 5:45。这意味着如果我将系统设置为 UTC,则时间为 17:45 UTC,但如果系统设置为东部时间,则同一命令实际上会将时钟更新为 12:45 UTC。我能否在命令中同时指定时区标识符和时间date -s
?
答案1
经过反复试验,我终于找到了答案。要设置时间并强制其采用 UTC,我可以这样做:
sudo date +%T%Z -s "17:45:00UTC"
如果我想同时设置日期和时间,我可以这样做:
sudo date -s '2018-01-26T17:45:00Z'
答案2
在大多数版本的 Linux 中(特别是我脑海中浮现的 Redhat/Centos),执行以下操作:
# Delete the current time zone file
rm -f /etc/localtime
# Set it to the new value
ln -s /usr/share/zoneinfo/UTC /etc/localtime
我了解这并没有使用date
您所要求的命令。
答案3
如果您要更新时间的设备没有连接到互联网。并且您不关心亚秒级的精度。您可以在已知正确时间的计算机上使用它来生成使用 UTC 时间戳设置正确时间的 bash 命令。
echo "date +%s -s @$(date +%s)"
这将生成类似的内容date +%s -s @1541377821
,您可以复制并粘贴到另一台计算机。