シンプル

シンプル

Linuxシステムの日付を変更するには?

私は変更したい:

  • ちょうど1年
  • たった一ヶ月
  • 日付のみ
  • 上記の3つを組み合わせてみてください。

答え1

使用date -s:

date -s '2014-12-25 12:34:56'

年/月/日の1つだけをルートまたはに変更することはsudoより難しく、現在の日付のビットを繰り返す必要があります。また、通常、時計を介してアクセスする主要なデスクトップ環境に組み込まれたGUI日付ツールもあります。

時間の一部のみを変更するには、日付文字列にコマンド置換を使用できます。

date -s "2014-12-25 $(date +%H:%M:%S)"

日付は変更されますが、時間は保持されます。バラよりman date他の組み合わせを構成するために詳細形式を指定するために使用されます。個々のコンポーネントは%Y、、、、およびです。%m%d%H%M%S

答え2

システム時間

これを使用してdateシステム日付を設定できます。 GNUの実装date(組み込まれていないほとんどのLinuxシステムで見つかります)は、時間設定のためにさまざまなフォーマットを受け入れます。以下はいくつかの例です。

年のみ設定:

date -s 'next year'
date -s 'last year'

月を設定してください。

date -s 'last month'
date -s 'next month'

日付を設定してください。

date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'

すべてをまとめると:

date -s '2009-02-13 11:31:30' #that's a magical timestamp

ハードウェア時間

これでシステム時間が設定されましたが、ハードウェアクロックと同期できます。

--showハードウェア時間印刷の場合:

hwclock --show

ハードウェアクロックを現在のシステム時間に設定できます。

hwclock --hctosys

またはハードウェア時計のシステム時間

hwclock --systohc

答え3

命じるシステム日付の変更はいdate

これを行う方法は2つあります。通話日付コマンド(Linuxで):

   date [OPTION]... [+FORMAT]
   date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

シンプル

最も簡単な方法は使用するdate -sことです。シンプル 比較的日付

 $ date -s yesterday; date
 date: cannot set date: Operation not permitted
 Sat Jan  5 07:21:07 EST 2019
 Sun Jan  6 07:21:07 EST 2019

制限されたユーザーによって実行されるため、日付は変更されません$。日付を本当に変更するには、ルート(#)またはsudoを使用してください。

 $ sudo date -s yesterday; date
 Sat Jan  5 07:21:07 EST 2019
 Sat Jan  5 07:21:07 EST 2019

したがって、どの部分を変更したり、比較的日付は名前を付けるのと同じくらい簡単です。

 $ date -s "5 years ago"
 Mon Jan  6 08:26:26 EST 2014

 $ date -s "+6 months"
 Sat Jul  6 08:28:39 EDT 2019

 $ date -s "+3 hours -13 minutes"
 Sun Jan  6 11:16:59 AST 2019

絶対日付はより多くの詳細を必要とするので、少し複雑です。

 $ date -s "2001-07-23 10:11:12"

あるいは、date コマンドを 2 回使用できます。

 $ date -s "$(date +'%Y-%m-%d %H:%M:%S')"

これらのいずれかを%有効な値に置き換えると、日付が設定されます(ルートのみ)。

 $ date -s "$(date +'%Y-11-%d %H:%M:%S')"
 Wed Nov  6 08:37:15 EST 2019

直接

のための2番目の予定の電話フォームまっすぐシステム日付を変更してください。

 date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]

だから:

 date 11230812              # MMDDhhmm

日付を11月23日08:12に設定してください。

BSDにも同様のコマンドがありますただし、形式は異なります([[[[[cc]yy]mm]dd]HH]MM[.ss]]。

制限されたユーザーとして試して、何をしているかをdate確認してください(変更せずに)。

 $ date 11230812
 date: cannot set date: Operation not permitted
 Sat Nov 23 08:12:00 EST 2019

または、実際に日付を変更するには、rootとして次のようにします。

 # date 11230812
 # date
 Sat Nov 23 08:12:00 EST 2019

NTPやchronyなどのサービスが影響を受けます。そして再起動すると、日付は実際の日付にリセットされます。

年を設定するには、YYを追加してください。

 $ date 1123081222
 date: cannot set date: Operation not permitted
 Wed Nov 23 08:12:00 EST 2022

または、年を設定するにはCCYYを使用してください。そして世紀:

 $ date 112308121982
 date: cannot set date: Operation not permitted
 Tue Nov 23 08:12:00 EST 1982

答え4

2022年12月現在:

あなたはできますNTP同期を無効にする今後実際の日付の変更:

sudo timedatectl set-ntp 0
sudo timedatectl set-time "2022-12-03 $(date +%H:%M:%S)"

これ以上日付を変更する必要がない場合は、NTP同期を再度有効にしてシステム日付を自動的に更新する必要があります。

sudo timedatectl set-ntp 1

関連情報