Heim >Java >javaLernprogramm >Wie können wir in Java mit Jackson mehrere Datumsformate abbilden?
Jackson ist eine Java-basierte Bibliothek, die zum Konvertieren von Java-Objekten in JSON und JSON in Java-Objekte nützlich ist. Mithilfe der Annotation @JsonFormat können wir mehrere Datumsformate in der Jackson-Bibliothek zuordnen. Dabei handelt es sich um eine allgemeine Annotation, die die Details der Serialisierung eines Eigenschaftswerts konfiguriert. @JsonFormat hat drei wichtige Felder: Form, Modus und Zeitzone. Das Feld shape kann die für die Serialisierung verwendete Struktur definieren (JsonFormat.Shape.NUMBER und JsonFormat.Shape.STRING), und das Feld mode kann für die Serialisierung und Deserialisierung verwendet werden. Für Datumsangaben enthält das Schema mit SimpleDateFormat kompatible Definitionen, und schließlich steht das Feld timezone für die Serialisierung zur Verfügung und verwendet standardmäßig die Standardzeitzone des Systems. Die chinesische Übersetzung von
@Target(value={ANNOTATION_TYPE,FIELD,METHOD,PARAMETER,TYPE}) @Retention(value=RUNTIME) public @interface JsonFormat<strong> </strong>
import java.io.*; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonDateformatTest { final static ObjectMapper mapper = new ObjectMapper(); public static void main(String[] args) throws Exception { JacksonDateformatTest jacksonDateformat = new JacksonDateformatTest(); jacksonDateformat.dateformat(); } public void dateformat() throws Exception { String json = "{\"createDate\":\"1980-12-08\"," + "\"createDateGmt\":\"1980-12-08 3:00 PM GMT+1:00\"}"; Reader reader = new StringReader(json); Employee employee = mapper.<strong>readValue</strong>(reader, <strong>Employee.class</strong>); System.out.println(employee); } } // Employee class class Employee implements Serializable { @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "IST") private Date createDate; @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm a z", timezone = "IST")<strong> </strong> private Date createDateGmt; public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = createDate; } public Date getCreateDateGmt() { return createDateGmt; } public void setCreateDateGmt(Date createDateGmt) { this.createDateGmt = createDateGmt; } <strong> </strong> @Override public String toString() { return "Employee [\ncreateDate=" + createDate + ", \ncreateDateGmt=" + createDateGmt + "\n]"; } }
Employee [ createDate=Mon Dec 08 00:00:00 IST 1980, createDateGmt=Mon Dec 08 07:30:00 IST 1980 ]
Das obige ist der detaillierte Inhalt vonWie können wir in Java mit Jackson mehrere Datumsformate abbilden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!