使用命令列設定相對時間

使用命令列設定相對時間

使用類似日期命令的命令,是否可以設定相對於「現在」的日期和時間?

所以而不是date +%T -s "10:13:13"類似的東西date -s +1h或類似的東西

答案1

要設定日期,您必須以 root 身分登入(或 su/sudo...)

echo "Time 1 hour ago ... $(date -d "$(date +%F\ %T) 1 hour ago")"
echo "Time now .......... $(date  +%F\ %T)"
echo "Time in 1 hour .... $(date -d "$(date +%F\ %T) 1 hour")"

sudo date +%F\ %T -s "$(date -d "$(date +%F\ %T) 1 hour")"
echo "Adjusted time ..... $(date  +%F\ %T)"

sudo date +%F\ %T -s "$(date -d "$(date +%F\ %T) 1 hour ago")"
echo "Re-adjusted time .. $(date  +%F\ %T)"

輸出:

Time 1 hour ago ... 2012-04-16 21:31:53
Time now .......... 2012-04-16 22:31:53
Time in 1 hour .... 2012-04-16 23:31:53
[sudo] password for .... 
Adjusted time ..... 2012-04-16 23:31:53
[sudo] password for  .... 
Re-adjusted time .. 2012-04-16 22:31:53

答案2

最近date現在可以用自然語言相對設定日期了!

這是使用 GNU coreutils 8.23 的範例

# date
Fri Oct  5 16:24:25 UTC 2018
# date --set "10 minutes ago"
Fri Oct  5 16:14:25 UTC 2018
# date --set "10 minutes"
Fri Oct  5 16:24:25 UTC 2018

答案3

您可以透過執行以下操作來變更您的時區# dpkg-reconfigure tzdata。不過,我不確定您如何將時間更改為任意值。

相關內容