dateコマンドで「和暦」を出力するには?【令和・平成・昭和】

Linuxガイド

dateコマンドで「和暦」の日時を出力するには、「+%Ec」を指定します。
環境変数LC_TIMEが「ja_JP.UTF-8」である必要がありますが、「日本語」を選択してインストールした環境であれば、設定されているはずです。

以下は、Ubuntu 20.04 LTSでの実行例です。「令和」に対応しています。

$ date +%Ec
令和02年07月16日 11時18分06秒

# 任意の日付を指定する例
$ date +%Ec -d "1985-03-17 10:00:00"
昭和60年03月17日 10時00分00秒

$ date +%Ec -d "1990-04-01 10:00:00"
平成02年04月01日 10時00分00秒

Ubuntu 18.04 LTSでは、以下のように「平成」になってしまいます(2020年7月時点)。

$ date +%Ec
平成32年07月16日 11時18分06秒

なお、環境変数LC_TIMEを確認するには、「locale」コマンドを実行します。「日本語」を選択してインストールした環境なら、以下のように表示されます。

$ locale
LANG=ja_JP.UTF-8
LANGUAGE=ja
LC_CTYPE="ja_JP.UTF-8"
LC_NUMERIC="ja_JP.UTF-8"
LC_TIME="ja_JP.UTF-8"
LC_COLLATE="ja_JP.UTF-8"
LC_MONETARY="ja_JP.UTF-8"
LC_MESSAGES="ja_JP.UTF-8"
LC_PAPER="ja_JP.UTF-8"
LC_NAME="ja_JP.UTF-8"
LC_ADDRESS="ja_JP.UTF-8"
LC_TELEPHONE="ja_JP.UTF-8"
LC_MEASUREMENT="ja_JP.UTF-8"
LC_IDENTIFICATION="ja_JP.UTF-8"
LC_ALL=

これらの「ロケール環境変数」については、以下の記事で詳しく解説しています。

「ロケール環境変数」の種類と優先順位まとめ【LC_ALL・LC_*・LANG・LANGUAGE】
Linuxにおいて、アプリやコマンドが処理/出力する言語および時刻や日付、通貨などのフォーマットは、「ロケール」により決定されます。そしてロケールは「ロケール環境変数」によって設定されています。このページでは、ロケール環境変数の種類と、優先...

日本語以外の環境で和暦を出力するなら、以下のようにLC_TIMEを指定して実行します。ただし、日本語のフォントが表示できる環境である必要があります。

$ LC_TIME="ja_JP.UTF-8" date +%Ec
令和02年07月16日 13時58分15秒

+%Ec」以外にも、「+%EC」(年号)、「+%Ex」(日付)、「+%EX」(時刻)、「+%Ey」(年の数字)、「+%EY」(年)を指定できます。

$ date +%EC
令和

$ date +%Ex
令和02年07月16日

$ date +%EX
13時50分55秒

$ date +%Ey
02

$ date +%EY
令和02年
Linuxガイド
\シェアお願いします/
LFI

コメント

タイトルとURLをコピーしました