web-dev-qa-db-fra.com

LocalDateTime supprime les millisecondes

Je travaille dans l'application Java où j'utilise le Java 8.

J'ai intégré la base de données (plusieurs bases de données Oracle, Mysql, Postgres) et où dans DB i string la date de création.

le format de date dans DB est - 2015-07-29 16: 23: 28.143

Je le récupère de la base de données et le place dans l'objet Localdatetime

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

Donc, ici, le problème est que je ne veux pas afficher/envoyer la milliseconde dans la réponse. je veux montrer/envoyer la date comme 2015-07-29 16:23:28

J'ai essayé le formateur mais il échoue car il donne une chaîne et je ne veux pas changer l'objet LocalDateTime en chaîne car cela va provoquer des changements majeurs dans toutes les applications Java Java. Je veux donc trouver la solution

Quelqu'un peut-il connaître une solution à ce sujet.

36

Réglez-les simplement sur 0:

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

Échantillon/preuve:

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));
  }
}

Sortie:

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

Vous pouvez essayer de laisser tomber quoi que ce soit en moins de secondes

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