フォーマットされた日付文字列のフォーマットを取得するには?

フォーマットされた日付文字列のフォーマットを取得するには?

日付を処理するシェルスクリプトを作成しました。引数から1つ以上の日付文字列を取得し、結果を印刷します。説明する、

$ datecalc 06/27/2021 01/01/2000
05/10/2005

スクリプトはdate(1)コマンドを使用して与えられた日付をエポック時間に変換します。これは問題なく機能します。問題は、結果を静的形式(現在%D)で出力することです。だから私の主な質問は次のとおりです。日付文字列の形式を取得する方法はありますか?

たとえば、私はスクリプト/関数/パイプライン/この機能を実行するすべてを探しています。

$ getformat "06/27/2021"
%m/%d/%Y
$ getformat "21/06/27"
%y/%m/%d
$ getformat "June 27"
%B %d

これにより、スクリプト出力で次のことができます。

date -d "$result" +$(getformat "$1")

確認しました日付ツールそのプログラムがそのタスクを実行できることを確認してください。しかしそうではないようです。しかし、これを達成するために1つ以上のdateutilsプログラムを使用することは大丈夫です。

ベストアンサー1

答え:いいえ、そこではありません。

@Kamilが暗示するようにあいまいな日付が与えられたら、01/01/01これがdd / mm / yy、mm / dd / yy、yy / mm / ddなどであるかどうかを知る方法はありません。

おすすめ記事