Lors de la création d'une API Web en Java, le type de date tel que le type LocalDateTime est affiché dans la réponse.
2019-01-01T01:00:00
Solution si ça devient comme
--Créer un adaptateur de sérialisation --Créez package-info.java dans le package avec le modèle de réponse et chargez l'adaptateur créé
Créer un adaptateur
LocalDateAdapter.java
package api.adapters;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class LocalDateAdapter extends XmlAdapter<String, LocalDate> {
	@Override
	public LocalDate unmarshal(String s) throws Exception {
		if (s == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
		LocalDate dateTime = LocalDate.parse(s, formatter);
		return dateTime;
	}
	@Override
	public String marshal(LocalDate d) throws Exception {
		if (d == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
		String formattedDateTime = d.format(formatter);
		return formattedDateTime;
	}
}
LocalDateTimeAdapter.java
package api.adapters;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
	@Override
	public LocalDateTime unmarshal(String s) throws Exception {
		if (s == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		LocalDateTime dateTime = LocalDateTime.parse(s, formatter);
		return dateTime;
	}
	@Override
	public String marshal(LocalDateTime d) throws Exception {
		if (d == null) {
			return null;
		}
		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
		String formattedDateTime = d.format(formatter);
		return formattedDateTime;
	}
}
Lire avec package-info
package-info.java
//Annoter l'adaptateur
@XmlJavaTypeAdapters(value = { @XmlJavaTypeAdapter(value = LocalDateTimeAdapter.class, type = java.time.LocalDateTime.class),
@XmlJavaTypeAdapter(value = LocalDateAdapter.class, type = java.time.LocalDate.class) })
package api.model.response;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapters;
//Adaptateur d'importation
import api.adapters.LocalDateAdapter;
import api.adapters.LocalDateTimeAdapter;
Recommended Posts