現在時刻の書式設定

現在時刻の書式設定

次の形式の時間が欲しい

2020-10-12 10:41:42,526 

それを行う方法。試してみましたが、間違っているようです。

date +"%Y-%m-%d %H:%M:%S,%N"

答え1

3桁ではなく9桁が表示されるのが唯一の問題である場合は、%N表示したい桁数を前に追加して問題を解決できます。%3N

$ date +"%Y-%m-%d %H:%M:%S,%3N"
2020-10-12 09:52:19,931

答え2

これは、現在時刻の1秒未満の部分(9桁に0が追加された)を提供する%NGNU拡張です。ミリ秒を取得するには、次の手順を実行します。dateN

date '+%F %T,%3N'

作成中のzshスクリプトの場合は、組み込みstrftimeスクリプトを使用して移植できます。

zmodload zsh/datetime
strftime '%F %T,%3.'

不足:

zmodload zsh/datetime
strftime '%F %T,%3.' $epochtime

または、基数文字をユーザーの基数文字のままにします(そうでないと仮定します%が、基数文字があるロケールを知りません%)。

zmodload zsh/datetime
zmodload zsh/langinfo
strftime "%F %T${langinfo[RADIXCHAR]}%3."

ksh93スクリプトの場合は、printf組み込みスクリプトを使用してそのタスクを実行できます。

printf '%(%F %T,%3N)T\n'

不足:

printf '%(%F %T,%3N)T\n' now

または、ユーザーの基数文字を使用します(再度ではないと仮定%)。

radixchar=$((1e-1))
radixchar=${radixchar//[0123456789]}
printf "%(%F %T${radixchar}%3N)T\n"

関連情報