コマンドラインを使用して相対時間を設定する

コマンドラインを使用して相対時間を設定する

date コマンドに似たものを使用して、「現在」を基準とした日付と時刻を設定することは可能ですか?

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。ただし、任意の値で時間を変更する方法がわかりません。

関連情報