2017-01-25 13 views
-1

Я пытаюсь передать дату использования java для ответа json без успешных результатов.util.sql date в json response

Если i System.out.println даты, я получаю «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 

если я передать свою дату возвращения JSon я получаю «263» только (последняя часть метки времени)?

Как я могу отформатировать дату, чтобы получить всю дату (YY-MM-DD, hour-min-sec), а не только последнюю часть метки времени?

модель объекта

возвращаемое значение

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

    return new testSomething(true, "msg here", fromDate, toDate); 
+0

неразрешимые пока вы не предоставите [mcve]. – Tom

+0

Показать код, который вы используете для создания JSON. –

+0

Где ваш json создан в вышеуказанном коде? –

ответ

0

преобразования по умолчанию для отправки миллисекунд с начала века (date.getMillis()). Существует две причины для этого:

  1. Считываемость не является проблемой для компьютеров.
  2. Этот формат времени не зависит от часового пояса. Это означает, что вы можете отправить дату на другой компьютер и отобразит тот же самый момент времени.

В зависимости от вашей инфраструктуры JSON существуют различные способы установки преобразователей данных. Для этой цели у Jackson есть несколько сторонних модулей типа данных, и вы можете установить их самостоятельно в своем ObjectMapper.

0

Что-то, как это будет делать ...

long timestamp = fromDate.getTime(); 
SimpleDateFormat dateFormat = new SimpleDateFormat("YYYY/MM/dd HH-mm-ss"); 
System.out.println(dateFormat.format(timestamp)); 
0

установил ее, добавив spring.jackson.date-format=(yyyy-MM-dd HH:mm:ss) моего application.properties файл

+1

Примечание. что этот код неожиданно начнет сбой при обмене JSON между компьютерами в разных часовых поясах. –

+0

@AaronDigulla, тогда какое правильное решение? –

+0

Вы должны включать миллисекунды и часовой пояс ('... HH: mm: ss.SSSZ') или оставить только формат даты (= передача с использованием миллисекунд). Зачем вам нужен специальный формат даты? –

0

В Java Spring Я хотел отправить данные & время на объект через PUT, который использует java.sql.Date в объекте. Я использую JSON, чтобы отправить его, и это формат, я использовал

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

И формат Json я использовал,

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

И это сработало для меня :)

 Смежные вопросы

  • Нет связанных вопросов^_^