ホームページ >Java >&#&チュートリアル >SimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') が UTC ではなく IST を表示するのはなぜですか? それを修正するにはどうすればよいですか?
SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") 問題: IST タイムゾーンの表示
Java では、SimpleDateFormat クラスを使用すると、事前定義されたパターンに従って日付の書式設定と解析を行うことができます。パターン「yyyy-MM-dd'T'HH:mm:ss'Z'」を使用する場合、UTC タイムゾーンの日付と時刻を表すことが期待されます。ただし、このような文字列を解析するときに問題が発生します。
次のコードを考えてみましょう。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); Date date = sdf.parse("2013-09-29T18:46:19Z"); System.out.println(date);
期待される出力は UTC タイムゾーンの日付と時刻になります。ただし、多くのユーザーは、日付と時刻が IST (インド標準時) タイムゾーンで表示されると報告しています。これにより、混乱と誤った日付処理が発生します。
解決策: タイムゾーンを明示的に設定します
この問題は、SimpleDateFormat コンストラクターが日付パターンを初期化するだけで、日付パターンを設定しないために発生します。タイムゾーンを明示的に指定します。これを修正するには、タイムゾーンを手動で UTC に設定する必要があります。その方法は次のとおりです。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = sdf.parse("2013-09-29T18:46:19Z"); System.out.println(date);
タイムゾーンを GMT に設定すると、SimpleDateFormat パーサーは入力文字列を正しく解釈し、予想される UTC タイムゾーンで日付と時刻を表示します。
以上がSimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') が UTC ではなく IST を表示するのはなぜですか? それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。