Как получить поле календаря из REST-запроса в RestController в SpringBoot? - PullRequest
0 голосов
/ 20 мая 2019

Я получаю дату в POST-запросе в @RestController с Json следующим образом: { "date":"2016-01-28" } Как я могу получить объект с типом java.util.Calendar?Обычно я использую java.util.Date, но почти все методы устарели.Какую аннотацию Джексона можно использовать, чтобы получить Calendar?Я пытался использовать

public class Test {
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    Calendar date;
}

, но получаю null

Ответы [ 3 ]

0 голосов
/ 20 мая 2019

Я бы предложил использовать java.util.Date вместо Calendar. По крайней мере, в вашем объекте хранилища. Если вам нужны дополнительные функции календаря, вы можете создать экземпляр, как показано @Hamza.

Calendar - довольно тяжелый класс. Нет необходимости создавать его новый экземпляр, учитывая небольшой объем хранимых вами данных.

Вы можете выбрать дату из другого класса, который работает с ней, чтобы предоставить вам дополнительные функции по мере необходимости.

0 голосов
/ 20 мая 2019
{
"calendar": 1558347802873  
}

Пример запроса json

просто передать дату в числовом формате, используя объект под

import java.util.Calendar;

public class TestCal {

private Calendar calendar;

public Calendar getCalendar() {
    return calendar;
}

public void setCalendar(Calendar calendar) {
    this.calendar = calendar;
}
}

образец пружины Контроллер

    @PostMapping("/testCal")
    public void testCal(@RequestBody TestCal test) {

    // do your stuff
    test.getCalendar();


   }
0 голосов
/ 20 мая 2019

Вы можете использовать аннотацию @DateTimeFormat.Согласно Spring документы это применимо к java.util.Calendar.

@PostMapping("/somemapping")
public void date(@RequestParam("date") @DateTimeFormat(pattern = "yyyy-MM-dd") Calendar date) {
   //some other processing code
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...