Heim  >  Artikel  >  Java  >  Wie können wir in Java mit Jackson mehrere Datumsformate abbilden?

Wie können wir in Java mit Jackson mehrere Datumsformate abbilden?

王林
王林nach vorne
2023-08-27 11:17:02848Durchsuche

在Java中,我们如何使用Jackson映射多个日期格式?

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

Grammar

@Target(value={ANNOTATION_TYPE,FIELD,METHOD,PARAMETER,TYPE})
@Retention(value=RUNTIME)
public @interface JsonFormat<strong>
</strong>

Example

ist:

Example

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]";
   }
}

Output

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen