gpt4 book ai didi

java - 从 postman (休息服务)如何将 json 日期(字符串格式)发送到接受日期对象的 java

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:46:14 24 4
gpt4 key购买 nike

通过 postman 发送以下JSON后,如何将dateOfJoining值(字符串类型)绑定(bind)到“DateInput”类中的成员变量“dateOfJoining”(日期类型)。如何将 String 转换为具有相同格式 dd/MM/yyyy 的 java 中的 Date 对象。转换后的日期应该在 Date 对象中而不是 String 中。

Json如下所示

{
"dateOfJoining" : "03/04/2017"
}

postman 中的服务 URL -- localhost/Rest/hello

Java 中的 RestService 类 - HandleRestRequest.java

@RestController
public class HandleRestRequest
{

@RequestMapping("\hello");
public List setRequestParams(@RequestBody DateInput dateInput)
{
.......
}
}

Pojo Class DateInput.java

public class DateInput
{
private Date dateOfJoining;
.......
}

如果我以下面的格式从 json 发送日期,它会抛出错误作为不满意的输入

 {
"dateOfJoining" : 04/04/2017
}

所以我将它作为字符串格式发送,并在 DateInput.java 文件中将 dateOfJoining 更改为字符串,后来我尝试将其转换为日期对象,如下所示

将 DateInput.java 文件从 Date 修改为 String

 public class DateInput
{
private String dateOfJoining;
.......
}

修改后的 JSON

{
"dateOfJoining" : "04/04/2017"
}

将用户输入从字符串转换为日期的代码

 DateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String convertedDate = sdf.format(dateInput.getDateOfJoining());

它正在转换为所需的格式,但返回类型是 String,但预期是发送 DAO 层的 Date 对象。所以我尝试了 sdf.parse,它返回 Date 对象但不是所需的格式

Date date = sdf.parse(sdf.format(dateInput.getDateOfJoining()));
output is like - Tue Apr 04 00:00:00 IST 2017
expected is 04/04/2017 (with return type Date object).

所以请帮助我如何将字符串转换为具有所需格式的日期对象,因为 DAO 层期望输入为格式为 dd/MM/yyyy 的日期对象

最佳答案

编辑:根据更新的问题更新答案。

使用 Jackson Databind 中的注释 @JsonFormat指定日期模式。

public class DateInput
{
@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="dd-MM-yyyy")
private Date dateOfJoining;
.......
}

关于java - 从 postman (休息服务)如何将 json 日期(字符串格式)发送到接受日期对象的 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43227251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com