ホームページ  >  記事  >  データベース  >  ここでは、中心的な問題と解決策に焦点を当てた、いくつかのタイトルのオプションを示します。 オプション 1 (直接的かつ問題に焦点を当てた): * UNIX 時間を変換するときに SimpleDateFormat.parse が一貫性のない出力を生成するのはなぜですか

ここでは、中心的な問題と解決策に焦点を当てた、いくつかのタイトルのオプションを示します。 オプション 1 (直接的かつ問題に焦点を当てた): * UNIX 時間を変換するときに SimpleDateFormat.parse が一貫性のない出力を生成するのはなぜですか

Susan Sarandon
Susan Sarandonオリジナル
2024-10-27 20:46:01632ブラウズ

Here are a few title options, focusing on the core issue and solution:

Option 1 (Direct and Problem-Focused):

* Why does SimpleDateFormat.parse produce inconsistent output when converting UNIX timestamps?

Option 2 (More Specific to the Cause):

* Time

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。