我目前遇到这个问题。我有一个Date.toString()
。一方面,我想将其作为Date
发送到另一侧。该怎么做?
这是我的代码:
public void createEmployee(Employee emp) throws HelicarrierException {
log.debug(LOG_PREFIX + "[SERVICE]-[CREATE-LOG-GOAL] - [GOAL] - [{}]", emp);
HashMap<String, String> map = new HashMap<>();
map.put("nameEmployee", emp.getName());
map.put("admissionalDate", emp.getAdmissionDate().toString());
RestTemplate rt = new RestTemplate();
String url = "http://" + properties.getSktServerEndpoint()
+ ":" + properties.getSktServerPort()
+ properties.getModelEmployee()
+ properties.getCreateEmployee();
log.debug(LOG_PREFIX + "-[URL]-[{}]", url);
log.debug(LOG_PREFIX + "-[PARAMETERS]-[{}]", map);
try {
rt.postForObject(url, emp, Employee.class, map);
}
请注意,emp.getAdmissionDate().toString() = Mon Oct 15 00:00:00 BRT 2018
我正在尝试将此参数映射到另一侧,像这样:
@RequestMapping(method = RequestMethod.POST, path = "/create", produces = "application/json")
public ResponseEntity<GenericResponse> create(@RequestParam(value = "nameEmployee") String nameEmployee, @RequestParam(name = "admissionalDate") @DateTimeFormat(pattern="dow mon dd hh:mm:ss zzz yyyy)) Date admissionalDate)
但是我总是得到错误请求错误。我认为Date
映射是错误的,但是我不知道该怎么做。有人知道,如何正确映射此字符串至今?
答案 0 :(得分:0)
要解决此问题,您有两种选择:
使用DateTime-Formatter发送日期的字符串表示形式,并在另一侧将其解析为日期。
ISO-8601已经提到了一种非常常见的时间戳格式
您可以直接发送日期或日期时间
对于您来说,@DateTimeFormat(pattern="dow mon dd hh:mm:ss zzz yyyy)
似乎不正确。
您的输出字符串的格式为Mon Oct 15 00:00:00 BRT 2018
。
另一方面,此String的适当格式为EEE MMM dd hh:mm:ss zzz yyyy
。
有关更多信息,请查看DateTimeFormatter-Docs内部。
或者看看another posts。