SimpleDateFormatter.parse が予期しない出力形式を与える
コード内で、SimpleDateFormatter.format と SimpleDateFormatter.parse が生成する不一致が発生しました。異なる出力形式。この動作の背後にある理由を詳しく見てみましょう。
SimpleDateFormatter クラスでは、日付を正しく操作するために、日付の書式設定とタイム ゾーン情報の両方が必要です。あなたの場合、指定した形式は「dd/MM/yyyy hh:mm:ss a」です (例: 23/05/2018 03:30:00 PM)。ただし、同じ形式を使用して書式設定された日付を解析すると、AM/PM の指定を表す形式内の「a」により、IST (インド標準時) タイム ゾーンが認識されます。
これこれは、SimpleDateFormatter.parse が IST タイム ゾーンを使用して日付を解釈し、観察したタイムスタンプが「Wed May 23 15:30:00 IST 2018」となることを意味します。この形式は、タイム ゾーン情報が含まれているため、最初に指定した形式とは異なります。
この問題を解決するには、次の解決策を検討してください。
要約すると、SimpleDateFormatter.format と SimpleDateFormatter.parse の間の不一致は、タイム ゾーンの考慮事項によって発生します。 java.time API を活用するか、SimpleDateFormatter でタイムゾーンを明示的に管理することにより、これらの書式の不一致を回避し、一貫した日付処理を保証できます。
以上がSimpleDateFormat.parse が予期しない出力形式を生成するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。