日付形式をyyyy-mm-ddに変更する方法

日付形式をyyyy-mm-ddに変更する方法

2017-11-25 23:35:08日付を(yyyy-mm-dd hh:mm:ss)から次に変更したいと思います。

Sat Nov 25 23:35:08 IST 2017

私はそれを試しましたが、echo 2017-11-25 | gawk '{print strftime("%c", $4)}'動作しません。

ベストアンサー1

GNUの使用date:

$ date -d "2017-11-25 23:35:08"
Sat Nov 25 23:35:08 CET 2017

結果はローカルタイムゾーン(およびローカルロケール)として表示されます。

IST タイムゾーンを明示的にリクエストするには、次を使用します。

$ TZ=Asia/Calcutta date -d "2017-11-25 23:35:08"
Sat Nov 25 23:35:08 IST 2017

POSIX/C ロケールの形式もインポートするには、次の手順を実行します。

$ LC_TIME=C TZ=Asia/Calcutta date -d "2017-11-25 23:35:08"
Sat Nov 25 23:35:08 IST 2017

strftime()GNU awk(および)の関数は、mawk文字列を2番目の引数として使用せず、Unixタイムスタンプを使用します。mktime()必要な形式に変換を使用して時間をUnixタイムスタンプに変換する必要がありますstrftime()。呼び出しには、mktime()まず入力を個々の年、月、日などに分割する必要があります。

また、$4関数を呼び出すと空になります(入力に4番目のフィールドがありません)。

おすすめ記事