SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'") タイムゾーン解釈の混乱
In java の SimpleDateFormat を使用すると、ユーザーは指定されたパターンを使用して日付を解析し、フォーマットすることができます。パターン「yyyy-MM-dd'T'HH:mm:ss'Z'」を使用する場合、「Z」が GMT/UTC タイムゾーンを表すことが期待されます。ただし、結果の日付には予想される GMT タイムゾーンではなく IST タイムゾーンが表示されるという懸念があります。
説明
パターン内の 'Z' 文字は実際に次のことを示します。 GMT/UTC タイムゾーン。ただし、日付/時刻文字列に「Z」を追加するだけでは値が魔法のように変更されるわけではないことに注意することが重要です。 setTimeZone メソッドを使用して、SimpleDateFormat オブジェクトのタイムゾーンを明示的に設定する必要があります。
問題の解決
出力日付に GMT/UTC タイムゾーンが正しく反映されるようにするには、次のようにします。次の行を使用してタイムゾーンを明示的に GMT に設定する必要があります。 code:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
タイムゾーンを設定すると、SimpleDateFormat オブジェクトは「Z」を GMT/UTC として正しく解釈し、希望のタイムゾーンで日付を表示します。
以上がSimpleDateFormat('yyyy-MM-dd'T'HH:mm:ss'Z'') が GMT ではなく IST を表示する場合があるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。