Maison >Java >javaDidacticiel >En Java, comment pouvons-nous mapper plusieurs formats de date à l'aide de Jackson ?

En Java, comment pouvons-nous mapper plusieurs formats de date à l'aide de Jackson ?

王林
王林avant
2023-08-27 11:17:02932parcourir

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

Jackson est une bibliothèque basée sur Java qui est utile pour convertir des objets Java en JSON et JSON en objets Java. Nous pouvons mapper plusieurs formats de date dans la bibliothèque Jackson à l'aide de l'annotation @JsonFormat, qui est une annotation générique utilisée pour configurer les détails de la façon dont une valeur de propriété est sérialisée. @JsonFormat a trois champs importants : shape, mode et timezone. Le champ shape peut définir la structure utilisée pour la sérialisation (JsonFormat.Shape.NUMBER et JsonFormat.Shape.STRING), et le champ mode peut être utilisé pour la sérialisation et la désérialisation. Pour les dates, le schéma contient des définitions compatibles SimpleDateFormat , et enfin, le champ timezone est disponible pour la sérialisation et prend par défaut le fuseau horaire par défaut du système. La traduction chinoise de

Grammar

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

Example

est :

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
]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer