Ubuntu Mate 20.04 で将来の日付をエポック番号に変換しようとしています。
そこで、次のコードを書くことにしました。
daysAmount="10"
endDate=$(date +"%b %_d %Y" -d "+$daysAmount days")
epochNum=$(date -d "$endDate" +%s)
最初の 2 行は正常に動作していますが、何も表示されませんepochNum=
。
私のように内部に別の変数を書き込んでも大丈夫ですか$(date)
? そうでない場合、これを機能させるにはどうすればよいですか?
私も試してみましたendDate=$(date +"%b %_d %Y" -d "+$daysAmount days" +%s)
が、それもうまくいきませんでした。
答え1
一時的なロケールでコマンドを実行できます。これで問題は解決するはずです:
daysAmount="10"
endDate=$(LC_ALL=C date +"%b %_d %Y" -d "+$daysAmount days")
epochNum=$(LC_ALL=C date -d "$endDate" +%s)
答え2
なんとかそれを機能させましょう。
エポック番号に変換する前に、日付の言語を確認してください。マウントの名前が米国のアルファベットと異なる場合は、次の「date」コマンドの例のように:
1.11.2021 (пн) 14:47:59 EET
変換は機能しません。
別のマシンでは、「日付」は次のように表示されます (米国アルファベット):
Mon Nov 1 14:47:45 EET 2021
コードは完璧に動作していた
異なる言語のマシンでの動作例については、以下を参照してください。 https://unix.stackexchange.com/a/675661/499362