web-dev-qa-db-ja.com

LocalDateTimeはミリ秒を削除します

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

データベース(複数データベースOracle、Mysql、Postgres)を統合し、DB iのどこに作成日を文字列化します。

dBの日付形式は-2015-07-29 16:23:28.143です

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

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

ここで問題は、応答でミリ秒を表示/送信したくないことです。 2015-07-29 16:23:28のような日付を表示/送信したい

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

誰でもこれに関する解決策を知ることができます。

それらを_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
_
53
Marvin

これを試して、秒未満のものをドロップすることができます

ldt = ldt.truncatedTo(ChronoUnit.SECONDS);
64
Peter Lawrey