私は、if...else ステートメントに 24 時間形式の時間入力を必要とするプログラムに取り組んでいます。この入力は、シェル コマンド、具体的には lpstat から取得されます。12 時間入力を取得して RegEx で 24 時間入力に変換するよりも、24 時間形式で入力を取得する方がはるかに便利です。
参考までに、現在の lpstat 出力は次のようになります。
Deskjet_1050_J410-25 nilanjan 4096 Saturday 29 August 2020 04:56:35 PM
Deskjet_1050_J410-26 nilanjan 4096 Saturday 29 August 2020 06:47:14 PM
Deskjet_1050_J410-27 nilanjan 4096 Saturday 29 August 2020 06:58:34 PM
この場合、時間部分は 24 時間形式にする必要があります。
時間出力をlpstat
24 時間形式にするにはどうすればよいか教えてください。
答え1
これは、ロケール変数を適切に設定することで可能になるはずですLC_TIME
。例:
$ lpstat -a
CUPS-BRF-Printer accepting requests since Thu 05 Apr 2018 05:36:42 PM EDT
DeskJet-3630 accepting requests since Thu 31 Aug 2017 03:59:12 AM EDT
しかしLC_TIME=C
$ LC_TIME=C lpstat -a
CUPS-BRF-Printer accepting requests since Thu Apr 5 17:36:42 2018
DeskJet-3630 accepting requests since Thu Aug 31 03:59:12 2017