Macのターミナルで日付と時刻を変更する方法 タイムフォーマットも解説

macOSでは(特にmacOS Big Sur Beta 6において)、システム環境設定の「日付と時刻」の設定がグレーアウトし、メニューバーの日付や時刻設定が変更できなくなる場合がある。

ここではメニューバーの日付や時刻設定をターミナルで指定する方法とタイムフォーマットの表、更に日付と時刻の表示に問題が起きた際の基本的な対処法もまとめる。

Macの日付と時刻表示のトラブル対処法

ターミナルで使用できるタイムフォーマット

下記はmacOSのターミナルにおいて日付と時刻の指定に使用できる主なタイムフォーマットとなる。

タイムフォーマット
11:00h:mm
11:00:00h:mm:ss
午後 11:00h:mm a
午後 11:00:00h:mm:ss a
23:00HH:mm
23:00:00HH:mm:ss
木 11:00EEE h:mm
木 11:00:00EEE h:mm:ss
木 23:00EEE HH:mm
木 23:00:00EEE HH:mm:ss
9月10日 11:00d MMM h:mm
9月10日 11:00:00d MMM h:mm:ss
9月10日 午後 11:00d MMM h:mm a
9月10日 午後 11:00:00d MMM h:mm:ss a
9月10日 23:00d MMM HH:mm
9月10日 23:00:00d MMM HH:mm:ss
9月10日(木)11:00EEE MMM d h:mm
9月10日(木) 11:00:00EEE MMM d h:mm:ss
9月10日(木) 午後11:00EEE MMM d h:mm a
9月10日(木) 午後11:00:00EEE MMM d h:mm:ss a
9月10日(木) 23:00EEE MMM d HH:mm
9月10日(木) 23:00:00EEE MMM d HH:mm:ss

なお、ターミナルではシステム環境設定の日付と時刻設定で行える範囲でしか表示を指定できないため、例えば下記のように「西暦を表示する」といったそもそもmacOSの機能にないフォーマットを指定しても効果はない。

defaults write com.apple.menuextra.clock "DateFormat" "YYYY EEE MMM d h:mm"

このようなコマンドは効果がない

ターミナルで日付と時刻(フォーマット)を設定する

前述のタイムフォーマットを参考に「日付や時刻表示がおかしい」といった場合、下記のようなコマンドをターミナルで実行することでメニューバーに日付と時刻表示のスタイルを指定することが可能だ。

"EEE MMM d h:mm"の部分は前述のタイムフォーマットを参考に好みの値を指定しよう。

下記のコマンドでは日付・曜日を表示させ、時刻は24時間表示を指定している。

defaults write com.apple.menuextra.clock "DateFormat" "EEE MMM d h:mm"

秒数も表示する場合は下記コマンドを指定する。

defaults write com.apple.menuextra.clock "DateFormat" "EEE MMM d h:mm:ss"

コマンドを実行した後は変更を反映させるため、下記コマンドでメニューバーをリセットしよう(リセットしなくても即座に変更が反映される場合もある)。

killall -KILL SystemUIServer

ターミナルでアナログとデジタルを切り替える

下記コマンドでメニューバーの日付と時刻の表示をアナログに切り替えることも可能だ。

defaults write com.apple.menuextra.clock IsAnalog -bool true

続いて下記コマンドでメニューバーをリセット。

killall -KILL SystemUIServer

デジタル表示に戻すには下記コマンドを実行する。

defaults write com.apple.menuextra.clock IsAnalog -bool true false
killall -KILL SystemUIServer

前述のコマンドで解決しない場合、日付と時刻の設定ファイルを削除

前述のターミナルによるタイムフォーマットの指定を行っても問題が解決しない場合は下記コマンドをターミナルで実行して日付と時刻の設定ファイルを削除してみよう。

sudo rm ~/Library/Preferences/com.apple.menuextra.clock.plist

パスワードの入力を求められたら管理者パスワードを入力してエンターキーを押そう。

続いて下記コマンドでメニューバーをリセット。

killall -KILL SystemUIServer

これによってシステム環境設定の「日付と時刻」の設定がリセットされるので問題が解決されたか確認しよう。

なお、タイムゾーンの設定は別のファイルに保存されているため、もしタイムゾーンがおかしい場合は先ほどのコマンドと同じ要領で下記コマンドを実行し、タイムゾーンが設定されているファイルを削除するのも有効だ。

sudo rm /Library/Preferences/com.apple.timezone.auto.plist
killall -KILL SystemUIServer

まとめ

ターミナルで日付と時刻を指定することは稀かもしれないが、タイムフォーマットはmacOSだけではなく様々なOSやアプリケーションで使用されるISOの国際規格のため覚えておいても損はないだろう。