web-dev-qa-db-ja.com

シェルスクリプトのYYYY-MM-DD形式の日付

Bashシェルスクリプトで$(date)を使ってみましたが、YYYY-MM-DDフォーマットの日付が欲しいです。どうやって入手できますか?

896
Kapsh

Bashでは: 

get 年月日 dateから

DATE=`date +%Y-%m-%d`

get 年月日時:分:秒 dateから

DATE=`date '+%Y-%m-%d %H:%M:%S'`

他の利用可能な日付フォーマットは dateのmanページ :から見ることができます。

man date
1541
Philip Fourie

試してください:$(date +%F)

283
kwatford

あなたはこのようなことをすることができます:

$ date +'%Y-%m-%d'
68
lutz

ISO 8601 standard dateフォーマットを探しているので、GNU date(または1988年よりも新しいdateコマンド)があれば、次のようにしてください。$(date -I)

34
Medievalist
date -d '1 hour ago' '+%Y-%m-%d'

出力は2015-06-14になります。

17
xu2mao
$(date +%F_%H-%M-%S)

間にコロン(:)を削除するために使用できます

出力

2018-06-20_09-55-58
10
ahmettolga

最近のBash(バージョン≥4.2)では、組み込み修飾子printfをフォーマット修飾子%(strftime_format)Tと共に使用できます。

$ printf '%(%Y-%m-%d)T\n' -1  # Get YYYY-MM-DD (-1 stands for "current time")
2017-11-10
$ printf '%(%F)T\n' -1  # Synonym of the above
2017-11-10
$ printf -v date '%(%F)T' -1  # Capture as var $date
6
wjandrea

2017年ではなく17年などの2つの数値形式で年を使いたい場合は、次のようにします。

DATE=`date +%d-%m-%y`
5
Crt
#!/bin/bash -e

x='2018-01-18 10:00:00'
a=$(date -d "$x")
b=$(date -d "$a 10 min" "+%Y-%m-%d %H:%M:%S")
c=$(date -d "$b 10 min" "+%Y-%m-%d %H:%M:%S")
#date -d "$a 30 min" "+%Y-%m-%d %H:%M:%S"

echo Entered Date is $x
echo Second Date is $b
echo Third Date is $c

ここでxは使用されたサンプル日付です。そして例は現在の日付より10分以上日付を取得することと同様にデータのフォーマットを表示します。

4
ankitbaldua

私がこのような仕事をしている時はいつでも私はにフォールバックすることになる 

$ man strftime

すべての可能性を思い出します。 

4
arp

私は次の定式化を使用します。

TODAY=`date -I`
echo $TODAY

dateのmanページをチェックしてください。他にも便利なオプションがいくつかあります。

man date
2
Luís de Sousa

あなたは環境変数として日付を設定することができ、後でそれを使うことができます

setenv DATE `date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"

または 

DATE =`date "+%Y-%m-%d"`
echo "----------- ${DATE} -------------"
0
Farid Haq

時間と時間とともに$(date + "%Y-%m-%d")または$(date + "%Y-%m-%d%T")を使用します。

0
Miguel