web-dev-qa-db-ja.com

句読点なしで現在の日付と時刻を表示する

たとえば、現在の日付と時刻を次の形式で表示します。

yyyymmddhhmmss 

それ、どうやったら出来るの?ほとんどの日付形式には-/:などが付属しているようです。

100
return 0

どうぞ:

date +%Y%m%d%H%M%S

man dateが上部近くで言っているように、次のようにdateコマンドを使用できます。

date [OPTION]... [+FORMAT]

つまり、+で始まる形式パラメーターを指定できます。おそらく、私が使用したフォーマットシンボルの意味を推測できます。

  • %Yは年
  • %mは月用です
  • %dは日用
  • ... 等々

これと他のフォーマット記号はman dateにあります。

151
janos

シェルスクリプトの簡単な例

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

句読点フォーマットなし:-+%Y%m%d%H%M%S
句読点付き:-+%Y-%m-%d%H:%M:%S

32
Burusothman

Bashを使用している場合は、次のコマンドのいずれかを使用することもできます。

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the Shell was invoked

Option -v varnameを使用して、結果を標準出力に出力する代わりに$varnameに保存できます。

printf -v varname '%(%Y%m%d%H%M%S)T'

Dateコマンドは常にサブシェルで(つまり、別のプロセスで)実行されますが、printfは組み込みコマンドであるため、より高速になります。

5
afaller

句読点なし(@Burusothmanが述べたように):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

O/P:

20170115072120

句読点付き

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;

O/P:

2017-01-15 07:25:33
4
Ani Menon

面白い/面白いパラメータ拡張 を使用してこれを行う方法(bash 4.4以降が必要):

${parameter@operator} - P operator

展開は、パラメータの値をプロンプト文字列であるかのように展開した結果の文字列です。

$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
0
PesaThe