• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SSH起動時のDateFormat(日付型))

SSH起動時のDateFormat(日付型)

このQ&Aのポイント
  • 現在、JAVAで作成した処理をバッチで起動する際に、SSHを使用すると日付型の処理でエラーが発生します。
  • shコマンドを使用してバッチを起動する場合は問題ありませんが、sshコマンドを使用すると日付フォーマットが変わってしまうため、エラーが発生します。
  • 同じ問題に悩んでいる方へのヒントや解決策を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • deadlock
  • ベストアンサー率67% (59/87)
回答No.1

TeraTtermの接続(Telnet?)やWEBサーバの場合と、ssh接続時ではデフォルトロケール等の設定が違っていませんか? これが違うと、デフォルトの日付の書式が変わってきます。 ロケールを統一したいときは、 ・引数ありのgetDateTimeInstanceに、ロケールを渡す ・システム起動時に、Locale.setDefault()でデフォルトを統一 ・Test.rshなどの起動シェルで、ロケール情報を設定する 書式を完全に統一したいときは、SimplaDateFormatを直接newしましょう。 "2005/09/16 0:00:00"の場合、 java.text.DateFormat parser = new java.text.SimpleDateFormat("yyyy/MM/dd H:mm:ss"); とすれば、解析できると思います。

参考URL:
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/text/DateFormat.html#getDateTimeInstance(int, int, java.util.Locale)
vivid8_tihiro
質問者

お礼

ありがとうございます。そのとおりでした。 まさか、SSH独自でロケールの設定が必要とは知りませんでした。 SSHのロケールの設定が行われていなかったため、時間の設定がデフォルトの世界表示(?)となり、DateFormatでエラーとなっていました。 SSHのロケール設定を日本語にしたら直りました。 SimplaDateFormatは最終手段として考えていたのですが、変換を利用している関数は、Utilなので、影響範囲が大きくあまり手を加えたくなかったのでよかったです。 回答ありがとうございました。

関連するQ&A