J'essaye de passer une date java util à ma réponse json sans succès.

Si je System.out.println les dates, j'obtiens le format correct "1970-01-01 01:00:00.263".

    System.out.println("from date: " + fromDate);
    System.out.println("to date: " + toDate);

    // from date: 1970-01-01 01:00:00.022
    // to date: 1970-01-01 01:00:00.263

    // in my json i get 
    // from date: 22 
    // to date: 263

Si je passe ma date au retour json, je reçois "263" seulement (la dernière partie de l'horodatage)?

Comment puis-je formater la date pour obtenir la date entière (AA-MM-JJ, heure-min-sec) au lieu de la dernière partie de l'horodatage?

l'objet modèle

public class testSomething {

    boolean status;
    String msg;
    Date fromDate;
    Date toDate;

    public testSomething(boolean status, String msg, Date fromDate, Date toDate) {
    this.status = status;
    this.msg = msg;
    this.fromDate = fromDate;
    this.toDate = toDate;
    }

la valeur de retour

    Date fromDate = dates.get(0);
    Date toDate = (Date) dates.get(dates.size() - 1);

    return new testSomething(true, "msg here", fromDate, toDate);
-1
Anders Pedersen 25 janv. 2017 à 14:18

4 réponses

Meilleure réponse

Corrigé en ajoutant spring.jackson.date-format=(yyyy-MM-dd HH:mm:ss) à mon fichier application.properties

0
Anders Pedersen 25 janv. 2017 à 11:32

Dans Java Spring, je voulais envoyer les données et l'heure à un objet via un PUT qui utilise java.sql.Date dans l'objet. J'utilisais json pour l'envoyer et c'est le format que j'ai utilisé

public class MyEntityClass {
    private String username;
    private Date dateTime;
}

Et le format Json que j'ai utilisé est,

{
    "username": "selena31",
    "dateTime":"2017-01-23T12:34:56"
}

Et cela a fonctionné pour moi :)

0
nullPainter 10 août 2017 à 02:33

La conversion par défaut consiste à envoyer les millisecondes depuis l'époque (date.getMillis()). Il y a deux raisons à cela:

  1. La lisibilité n'est pas un problème pour les ordinateurs.
  2. Ce format d'heure est indépendant du fuseau horaire. Cela signifie que vous pouvez envoyer la date à un autre ordinateur et il affichera le même point dans le temps.

En fonction de votre infrastructure JSON, il existe différentes façons d'installer des convertisseurs de données. Jackson a plusieurs modules de type de données tiers à cet effet et vous pouvez installer le vôtre dans votre {{X0 }}.

0
Aaron Digulla 25 janv. 2017 à 12:41

Quelque chose comme ça fera l'affaire ...

long timestamp = fromDate.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY/MM/dd HH-mm-ss");
System.out.println(dateFormat.format(timestamp));
0
jonhid 25 janv. 2017 à 11:31