1. ホーム
  2. java

LocalDateTimeからミリ秒を削除する。

2023-08-06 19:06:50

質問

私は、Java 8を使用しているJavaアプリケーションで作業しています。

私はデータベース(複数のデータベースOracle、Mysql、Postgres)を統合しており、DBで私は作成された日付を文字列。

DBの日付の書式は - 2015-07-29 16:23:28.143 です。

これをDBから取得し、Localdatetimeオブジェクトに設定します。

myObj.setCreated(rs.getTimestamp("created").toLocalDateTime());

ここで問題なのは、レスポンスにミリ秒を表示/送信したくないということです。

私はフォーマッタを試してみましたが、それは文字列を与えるように失敗し、私はこれがすべてのJavaアプリケーションで大きな変更を引き起こすとして、LocalDateTimeオブジェクトを文字列に変更したくありません。

誰もがこの上の任意のソリューションを知っていることができます。

どのように解決するのですか?

単純に、それらを 0 :

myObj.setCreated(rs.getTimestamp("created").toLocalDateTime().withNano(0));

サンプル/プルーフです。

import java.time.LocalDateTime;

public class DateTimeSample {

  public static void main(String[] args) {
    LocalDateTime ldt = LocalDateTime.now();
    System.out.println(ldt);
    System.out.println(ldt.withNano(0));
  }
}

出力します。

2015-07-30T16:29:11.684
2015-07-30T16:29:11


筆者注:これは受け入れられたものですが。 Peter Lawrey の回答 の方が、意図がより明確であるため、IMHOとしては好ましいと思います。