Поведение JAXB по умолчанию для типов даты приводит к тому, что формат даты выглядит как «2020-02-10 + 09: 00» для xml вывода и времени эпохи в миллисекундах для json вывода: 1581260400000. Я хочу, чтобы формат даты не чтобы включить часовой пояс в формате xml, поэтому я использовал адаптер xml:
public class MyDateAdapter extends XmlAdapter<String, Date> {
@Override
public String marshal(Date date) {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
df.setTimeZone(TimeZone.getTimeZone("JST"));
return df.format(date);
}}
и аннотировал поле:
@XmlJavaTypeAdapter(value=MyDateAdapter.class)
@XmlSchemaType(name = "date")
protected Date releaseDate;
Но это приводит к тому, что вывод json также иметь формат даты как "гггг-ММ-дд". Как я могу иметь разные форматы даты для xml и json?
Изменить: чтобы добавить некоторый контекст, это веб-приложение, использующее jaxb и jersey, и, получив вывод json, я имею в виду, когда я меняю заголовок accept для application / json и application / xml для xml.