dateコマンドを使用してUnixで特定の日付を表示しようとしていますが、今日ではない日付を表示する方法がわかりません。
たとえば、表示しようとすると、July 4, 2011
次のようになります。
$ date +"%B %d, %Y"
ところで、今日の日付がずっとこんな形式で出てきますね。希望の日付を表示するにはどうすれば変更できますか?
答え1
Linuxを実行している場合:
date +"%B %d, %Y" -d 2011-07-04
~からman date
:
-d, --date=STRING
display time described by STRING, not 'now'
答え2
通常、date
これはこの目的のためのツールではありません(GNU Dateなどの一部の実装では、これを非標準拡張として持つことができます)。
移植可能な日付操作が必要な場合に最善の方法は、そのモジュールperl
(ほぼすべてのBembed Unixにインストールされている)の機能を使用することです。ユーザーフレンドリーな他の日付操作モジュールがたくさんありますが、通常、少なくとも以前のバージョンではデフォルトではインストールされません。POSIX
strftime
mktime
perl
perl
perl -MPOSIX -le 'print strftime "%B %d, %Y", @ARGV' 0 0 0 4 7 "$((2011 - 1900))"