SimpleDateFormat.parse が指定された形式とは異なる形式を返すのはなぜですか?

Susan Sarandon
リリース: 2024-10-27 16:10:02
オリジナル
909 人が閲覧しました

 Why Does SimpleDateFormat.parse Return a Different Format Than Specified?

SimpleDateFormatter.parse 指定された形式とは異なる形式で出力される

この質問は、UNIX タイムスタンプを特定の日付に変換しようとするときに発生します。 SimpleDateFormat を使用した形式。目的の形式を設定しているにもかかわらず、sdf.parse の結果は異なる形式で表示されます。

解決策:

この問題を解決するには、日付を次のように渡すことを避けることをお勧めします。文字列を MySQL データベースにコピーします。代わりに、日付オブジェクト、特に Java 日付と時刻 API (java.time) のインスタンスを渡す方が安全かつ簡潔です。 LocalDateTime オブジェクトは、次の場合に適しています。

<code class="java">String ep = "a1527069600";
long epoch = Long.parseLong(ep.substring(1));
Instant inst = Instant.ofEpochSecond(epoch);
LocalDateTime ldt = inst.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime();</code>
ログイン後にコピー

データベース ストレージの場合、LocalDateTime は '2018-05-23T15:30' の形式で日時を表します。

LocalDateTime をMySQL データベース:

<code class="java">PreparedStatement ps = myDatabaseConnection.prepareStatement(
                "insert into my_table (my_date_time) values (?)");
    ps.setObject(1, ldt);</code>
ログイン後にコピー

UTC 値の代替:

データベース値を UTC (協定世界時) で保存する必要がある場合は、次の変換を使用します。

<code class="java">LocalDateTime ldt = inst.atOffset(ZoneOffset.UTC).toLocalDateTime();</code>
ログイン後にコピー

java.time を使用する利点:

  • 書式設定の問題を軽減します
  • 最新の包括的な日付と時刻 API を提供します

以上がSimpleDateFormat.parse が指定された形式とは異なる形式を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!