SimpleDateFormatter.parse 出力形式の不一致
SimpleDateFormat を使用して UNIX タイムスタンプを特定の日付形式に変換しようとすると、ユーザーは、
この不一致の理由の 1 つは、タイム ゾーンが一致しない可能性であることです。 SimpleDateFormat のタイムゾーンが予想される出力と一致していることを確認してください。さらに、Date のコンストラクターで要求されているように、エポック タイムスタンプがミリ秒単位で表されていることを確認します。
推奨される解決策:
潜在的なフォーマットの問題を回避し、データベースの互換性を確保するには、文字列の代わりに日付オブジェクトを MySQL に直接渡すことをお勧めします。 LocalDateTime などの java.time クラスを利用して日付と時刻を表します。
更新されたコード スニペットは次のとおりです:
<code class="java">String ep = "a1527069600"; long epoch = Long.parseLong(ep.substring(1)); Instant instant = Instant.ofEpochSecond(epoch); LocalDateTime ldt = instant.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime(); PreparedStatement ps = myDatabaseConnection.prepareStatement( "insert into my_table (my_date_time) values (?)"); ps.setObject(1, ldt);</code>
このアプローチにより、日付は指定された時刻に従ってフォーマットされるようになります。ゾーンに保存され、データベースにオブジェクトとして保存されるため、フォーマット エラーの可能性が排除されます。
以上がここでは、中心的な問題と解決策に焦点を当てた、いくつかのタイトルのオプションを示します。 オプション 1 (直接的かつ問題に焦点を当てた): * UNIX 時間を変換するときに SimpleDateFormat.parse が一貫性のない出力を生成するのはなぜですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。