Beim Erstellen einer RESTful-API mit Spring Boot wollte ich den Datumstyp der Antwort auf das erweiterte Format ISO 8601 formatieren und zurückgeben. Es hat lange gedauert, das Format zu finden, daher werde ich es als Memorandum belassen.
Es kann mit yyyy-MM-dd'T'HH: mm: ssXXX
ausgegeben werden.
Test.java
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Date d = new Date();
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX");
System.out.println(sf.format(d));
}
}
2018-12-19T15:46:06+09:00
Wenn Sie Spring Boot verwenden, sollten Sie ** Jackson ** als JSON-Konvertierung der Antwort verwenden. Sie können das Standardformat angeben, indem Sie die folgenden Einstellungen zu "application.yml" hinzufügen.
application.yml
spring:
jackson:
date-format: "yyyy-MM-dd'T'HH:mm:ssXXX"
time-zone: "Asia/Tokyo"
Jackson wird ** GMT sein, wenn Sie keine Zeitzone ** angeben. Grundsätzlich denke ich, dass es besser ist, die Zeitzone anzugeben.
Wenn Sie das Format anstelle des Standardformats explizit konvertieren möchten, schreiben Sie wie folgt.
Response.java
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
public class Response {
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX", timezone = "Asia/Tokyo")
private Date createdAt;
public Date getCreatedAt() {
return createdAt;
}
public void setCreatedAt(Date createdAt) {
this.createdAt = createdAt;
}
}
Das Format ist für jede Sprache leicht unterschiedlich und macht überraschend süchtig. Ist nicht alles vereint?
Recommended Posts