[英]How to pass Timestamp,date in request param in spring boot using Postman
I want to pass timestamp as a request parameter in spring boot controller method我想在 spring boot 控制器方法中将时间戳作为请求参数传递
//entity class //实体类
@Entity
public class EventCalendar {
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE)
private int id;
private String eventName;
private String city;
private String address;
@Temporal(TemporalType.TIMESTAMP)
private Date createRecord;
@Temporal(TemporalType.TIMESTAMP)
private Date startTime;
@Temporal(TemporalType.TIMESTAMP)
private Date endTime;
//controller //控制器
@RestController
@RequestMapping("/events")
public class controller{
@GetMapping("/getevents8")
public List<EventCalendar> getEvents8(@RequestParam int page,@RequestParam Date d1,@RequestParam Date d2 ){
Sort sort=new Sort(Sort.Direction.DESC,"createRecord");
Pageable pageRequest =PageRequest.of(page, 3,sort);
List<EventCalendar> events;
events=eventRepository.findByCreateRecordBetween(d1, d2, pageRequest);
return events;
}
}
//timestamp example that I inserted using json //我使用json插入的时间戳示例
{
"id":10,
"eventName":"Kabbadi pro kidz",
"city":"Noida",
"address":"sector 63",
"createRecord":"2020-03-31T15:45:01Z",
"startTime":"2020-04-08T07:30:10Z",
"endTime":"2020-04-09T10:15:18Z",
}
Now what I want to do is pass the time stamp in request Param现在我想做的是在请求参数中传递时间戳
I am passing this request in postMan我正在 postMan 中传递这个请求
http://localhost:8082/events/getevents8/?page=0&d1=2020-04-01T09:18:18Z&d2=2020-04-06T23:15:18Z http://localhost:8082/events/getevents8/?page=0&d1=2020-04-01T09:18:18Z&d2=2020-04-06T23:15:18Z
But getting this error:但收到此错误:
eclipse
Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'
Postman
{
"timestamp": "2020-03-31T10:11:34.196+0000",
"status": 400,
"error": "Bad Request",
"message": "Failed to convert value of type 'java.lang.String' to required type 'java.util.Date'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [@org.springframework.web.bind.annotation.RequestParam java.util.Date] for value '2020-04-01T09:18:18Z'; nested exception is java.lang.IllegalArgumentException",
"path": "/events/getevents8/"
}
I Do not know how to pass timestamp without the Json Object I want to know how to pass as a parameter in a request.我不知道如何在没有 Json 对象的情况下传递时间戳我想知道如何在请求中作为参数传递。
You can use this format for your input您可以使用此格式进行输入
2020-04-01T09:18:18Z -> @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")
or use iso dateTime input like below或使用如下所示的 iso dateTime 输入
2020-04-01T09:18:18.000+00:00 -> @DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)
below code work with your input下面的代码与您的输入一起使用
@GetMapping("/getevents8")
public List<EventCalendar> getEvents8(@RequestParam int page,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") Date d1,
@RequestParam @DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") Date d2) {
Sort sort = new Sort(Sort.Direction.DESC, "createRecord");
Pageable pageRequest = PageRequest.of(page, 3, sort);
List<EventCalendar> events;
events = eventRepository.findByCreateRecordBetween(d1, d2, pageRequest);
return events;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.