※ ChatGPTを利用し、要約された質問です(原文:SSH起動時のDateFormat(日付型))
SSH起動時のDateFormat(日付型)
このQ&Aのポイント
現在、JAVAで作成した処理をバッチで起動する際に、SSHを使用すると日付型の処理でエラーが発生します。
shコマンドを使用してバッチを起動する場合は問題ありませんが、sshコマンドを使用すると日付フォーマットが変わってしまうため、エラーが発生します。
同じ問題に悩んでいる方へのヒントや解決策を教えてください。
カテ違いの質問でしたらすみません。
現在、JAVAで作成した処理をバッチで起動する処理を行っているのですが、
該当Javaを起動するシェル(Test.rsh)をTeraTermから sh Test.rshの用に呼ぶと問題なく動きます。
この呼び方を ssh 同サーバー名 Test.rsh という風に変えると、
java.text.DateFormat Df = java.text.DateFormat.getDateInstance();
Date val = Df.parse("2005/09/16 0:00:00");
上記parseのところで
java.text.ParseException: Unparseable date: "2005/09/16 0:00:00"
が発生してしまいます。
sh Test.rshで起動させた時も、該当JavaをWeb画面から呼び出した時もエラーにはなりません。
SSHを使用すると、getDateInstanceでの言語フォーマットが変わったりするのでしょうか・・。
似たような経験をされた方でもヒントでもいいので教えてください。
(シェルの事が分かっていないので、分かりにくい文になりすみません)
お礼
ありがとうございます。そのとおりでした。 まさか、SSH独自でロケールの設定が必要とは知りませんでした。 SSHのロケールの設定が行われていなかったため、時間の設定がデフォルトの世界表示(?)となり、DateFormatでエラーとなっていました。 SSHのロケール設定を日本語にしたら直りました。 SimplaDateFormatは最終手段として考えていたのですが、変換を利用している関数は、Utilなので、影響範囲が大きくあまり手を加えたくなかったのでよかったです。 回答ありがとうございました。