请帮助更改日期格式。
**源**json文件
**目标**员工对象
我需要支持将文件json日期转换为对象。来自文件
{
"dateOfBirth": {
"year": 1980,
"month": "MAY",
"monthValue": 5,
"dayOfMonth": 4,
"dayOfYear": 124,
"dayOfWeek": "WEDNESDAY",
"chronology": {
"calendarType": "iso8601",
"id": "ISO"
},
"era": "CE",
"leapYear": false
}
}
对象
{"dateOfBirth": "1980-05-04"}
对象
public class Employee {
private LocalDate dateOfBirth;
//setter
//getter
}
库“com.fasterxml.jackson.datatype:jackson-datatype-jsr310”
日期:<代码>java。时间本地日期
我的目标是从文件中读取json数据并将其映射到对象。
您可以使用自定义反序列化器。
public class EmployeeBirthDateDeserializer extends StdDeserializer<LocalDate> {
public EmployeeBirthDateDeserializer() {
super(LocalDate.class);
}
@Override
public LocalDate deserialize(JsonParser parser, DeserializationContext context) throws IOException {
JsonNode root = parser.getCodec().readTree(parser);
return LocalDate.of(root.get("year").asInt(), root.get("monthValue").asInt(), root.get("dayOfMonth").asInt());
}
}
然后使用@JsonDeseriize
将其仅应用于员工
中的dateOfBirth
字段:
public class Employee {
@JsonDeserialize(using = EmployeeBirthDateDeserializer.class)
private LocalDate dateOfBirth;
//getters and setter
}
测试:
public class Temp {
public static void main(String[] args) throws IOException {
ObjectMapper mapper = new ObjectMapper();
Employee employee = mapper.readValue(ClassLoader.getSystemResourceAsStream("strange-date.json"), Employee.class);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
System.out.println(formatter.format(employee.getDateOfBirth()));
}
}
打印日期:1980-05-04。
我想用特定的格式序列化POJO的某些日历字段。 我将添加一个格式为字符串的字段,因为它实际上是以24小时为单位表示一天,而不是一个特定的时间瞬间。但当我添加带有注释的新字段时: 我希望得到这样的JSON: 相反,我遇到了以下例外情况:
我在webmatrix上使用经典的asp完成这项工作 在我的数据库中,存储的日期格式为MM/DD/YYYY
我有一个对象,它有2个XMLGregorianCalendar对象--一个用于日期,另一个用于时间。我使用Jackson对象映射器将日期转换为JSON格式。转换前日期为2014-02-10&时间为11:15:00。转换为JSON后,它变为{“Date”:1392008400000,“Time”:58500000}。在用JSON打印后,如何保留相同的日期和时间格式({“日期”:2014-02-10,
问题内容: 我有日期的字符串形式: 我想将其格式化为 我在用 但它不起作用。 我如何转换为? 问题答案: 试试这个 现在
问题内容: 我收到的日期值是这样的JSON对象: 我想用Java代码将其解析为或作为。 我想知道什么是简单的方法。 问题答案: 我认为第一个数字()是自纪元以来的毫秒数,并且是时区。鉴于以下示例代码似乎是这种情况,它似乎可以满足您的要求。 以下代码使用Jackson解析JSON输入,如果您还没有选择的JSON解析库,我建议您这样做。它缺少错误检查等。 样例代码: 输出:
问题内容: 我有django表单,我从POST收到一个格式为“%d /%m/%Y”的日期,我想将其转换为“%Y-%m-%d”,我该怎么办? 问题答案: 使用strptime和strftime: 同样,在Django模板语法中,您可以使用日期过滤器: 以您喜欢的格式打印日期。