• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字列から読み込んだ時刻の操作について。)

文字列から読み込んだ時刻の操作について

このQ&Aのポイント
  • 文字列表記された時刻を特定のフォーマットに変換・タイムゾーンの計算を行うプログラムの作成方法を教えてください。
  • CalenderクラスとSimpleDateFormatクラスを使用して、時間の加減算と文字列からDate型への変換を行います。
  • 出力結果の指定した形式にならない場合は、SimpleDateFormatクラスのapplyPatternメソッドの引数を修正することで指定した形式に変更できます。

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

>どこを直せば、指定した通りの出力形式になるのか、教えてください。 printlnしているdatは、生のDateですから System.out.println("test1:"+sdf.format(dat)); してやればいいことだと思います。 >Date型の時にタイムゾーンだけを抽出する もう一つ意味がよくわからないのですが、 getTimezoneOffset() するというような意味ですか? それか TimeZone.getDefault().getDisplayName(false,TimeZone.SHORT,Locale.US) または TimeZone.getDefault().getID() ?

kugayuyu
質問者

補足

ご教授ありがとうございます。 >>どこを直せば、指定した通りの出力形式になるのか、教えてください。 >printlnしているdatは、生のDateですから >System.out.println("test1:"+sdf.format(dat)); >してやればいいことだと思います。 上記部分に訂正した所、上手くいきました。 >>Date型の時にタイムゾーンだけを抽出する もう一つ意味がよくわからないのですが、 >getTimezoneOffset() >するというような意味ですか? >それか >TimeZone.getDefault().getDisplayName(false,TimeZone.SHORT,Locale.US) >またはTimeZone.getDefault().getID()? 質問が悪く申し訳ございません。 getTimezoneOffset()する事ですね。此方の方も参考になりました。ありがとうございます。 ところで、、、 2005-12-09T23:59:19+09:00 の、 "+09:00"は時刻の文字列パターンはあるのでしょうか?(+0900 なら、'Z'という風な。) 検索し、APIなどで調べてるのですが見当たりません。 http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/text/SimpleDateFormat.html もう地道にString型で弄っていった方がいいでしょうか。。。(^^;

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>"+09:00"は時刻の文字列パターンはあるのでしょうか?(+0900 なら、'Z'という風な。) ? どういう意味でしょう? ごめんなさい、よくわからないです。 できたら、これにこういうメソッドを適用するとこういうものが取り出せるみたいな目的を教えて貰えませんか? sdf.applyPattern("Z"); System.out.println(sdf.format(dat)); すればいいような気もしますが、そういう意味じゃないんですよね?

kugayuyu
質問者

お礼

結局、それらしい文字コードが見当たりませんでしたので、自分なりに地道に文字列操作で解決させました。 お忙しい中、ご教授頂きありがとうございました。

kugayuyu
質問者

補足

混乱させてしまい、申し訳ございません(汗) >これにこういうメソッドを適用するとこういうものが取り出せるみたいな目的を教えて貰えませんか? String strPreTime2 = "2005-12-09T23:59:19+0900"; SimpleDateFormat sdf2 = new SimpleDateFormat(); sdf2.setDateFormatSymbols(new DateFormatSymbols(Locale.US)); sdf2.applyPattern("yyyy-MM-dd'T'HH:mm:ssZ"); Date dat2 = sdf2.parse(strPreTime2); "2005-12-09T23:59:19+0900"をDate型に変換したdat2に.getTimezoneOffset()メソッドをかけると、int型で、"-540"と出ます。時差+9時間を分に直して修正したものです。 ただ、"2005-12-09T23:59:19+09:00"をDate型"yyyy-MM-dd'T'HH:mm:ssZ"に変換しようと思っても、"+09:00"に対応する時刻文字列が"Z"ではないのか、エラーで弾かれてしまいます。 対応する文字コードがあるのか、知ってたら教えてください。 というのが、質問の趣旨でした。 APIを見てもそれらしい記述がありませんでした。 未対応という結論であるのなら、地道に文字列操作で頑張ろう、と思います。 本当に、混乱させて申し訳ございませんでした。

すると、全ての回答が全文表示されます。
このQ&Aのポイント
  • LavieデスクトップPC(PC-DA970EAB)が極端に動作遅延している問題について質問があります。数ヶ月前まではサクサク動いていたフォルダー処理やアプリの立ち上げが、現在では約10倍の時間がかかるようになりました。特に、Microsoft EdgeやExcelなどのアプリで「応答なし」の状態が頻発し、マウスポインタが砂時計になる現象が発生しています。原因として、タスクマネージャーでディスク使用率がちょくちょく100%になることが確認されています。半年ほど前に初期化を行いましたが、再びこのような遅延が発生しています。
  • NEC Lavieデスクトップパソコン(PC-DA970EAB)を使用していますが、最近動作が非常に遅くなり、アプリの起動やフォルダーの処理に通常の約10倍の時間がかかるようになりました。特に、Microsoft EdgeやExcelなどのオフィスアプリが頻繁に「応答なし」状態になり、マウスポインタが砂時計になる問題が発生しています。タスクマネージャーのディスク使用率が100%になることが原因と考えられます。半年ほど前に初期化しましたが、最近再び遅延が発生しています。この問題の原因と対策を教えてください。
  • LavieデスクトップPC(PC-DA970EAB)の動作が極端に遅くなる問題についての詳細です。数ヶ月前まではフォルダー処理やアプリ立ち上げが迅速に行えていましたが、現在では約10倍の時間がかかり、特にMicrosoft EdgeやExcelなどで「応答なし」の状態が頻発しています。タスクマネージャーでディスク使用率が100%になることが確認されており、半年ほど前に初期化を行ったにもかかわらずこの問題が再発しています。
回答を見る

専門家に質問してみよう