web-dev-qa-db-ja.com

コマンドラインで2019-08-15日付形式を2019年8月15日に変換する方法

値が2019-08-15bash変数がある場合、その日付をAugust 15, 2019の形式に変換できるユーティリティはありますか?

3
Village

Linux、またはGNU dateを使用するすべてのシステム:

_$ thedate=2019-08-15
$ date -d "$thedate" +'%B %e, %Y'
August 15, 2019
_

MacOS、OpenBSD、FreeBSDでは、GNU dateはデフォルトでは使用できません:

_$ thedate=2019-08-15
$ date -j -f '%Y-%m-%d' "$thedate" +'%B %e, %Y'
August 15, 2019
_

_-j_オプションはシステムクロックの設定を無効にし、_-f_で使用される形式文字列は入力日付形式を記述します( strptime(3) 変数の値で使用される形式)。次に、変数の値と、出力を含める形式( strftime(3) 形式文字列にする必要があります)に従います。

date実装は parsedate(3) を使用するため、NetBSDユーザーは上記と似たものを使用できますが、_-f input_fmt_オプションなしで使用できます。入力日付文字列を指定する_-d_オプションにも注意してください。

_$ thedate=2019-08-15
$ date -j -d "$thedate" +'%B %e, %Y'
August 15, 2019
_

システムのdateのマニュアルも参照してください。

7
Kusalananda

GNU dateにアクセスできると仮定すると、

$ date --date="2019-08-15" "+%B %d, %Y"
August 15, 2019

dateman date)のマンページを確認してください。

4
Janka