Rumah  >  Artikel  >  Java  >  Di Jawa, bagaimana kita boleh memetakan berbilang format tarikh menggunakan Jackson?

Di Jawa, bagaimana kita boleh memetakan berbilang format tarikh menggunakan Jackson?

王林
王林ke hadapan
2023-08-27 11:17:02911semak imbas

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

Jackson ialah perpustakaan berasaskan Java yang berguna untuk menukar objek Java kepada JSON dan JSON kepada objek Java. Kita boleh memetakan berbilang format tarikh dalam pustaka Jackson menggunakan anotasi @JsonFormat, iaitu anotasi generik yang digunakan untuk mengkonfigurasi butiran tentang cara nilai harta disiri. @JsonFormat mempunyai tiga medan penting: bentuk, mod dan zon masa. Medan shape boleh mentakrifkan struktur yang digunakan untuk bersiri (JsonFormat.Shape.NUMBER dan JsonFormat.Shape.STRING), dan medan mode boleh digunakan untuk bersiri dan penyahsiran. Untuk tarikh, skema mengandungi SimpleDateFormat takrifan serasi, dan akhirnya, medan zon waktu tersedia untuk bersiri dan lalai kepada zon waktu lalai sistem. Terjemahan bahasa Cina bagi

Tatabahasa

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

Contoh

ialah:

Contoh

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
]

Atas ialah kandungan terperinci Di Jawa, bagaimana kita boleh memetakan berbilang format tarikh menggunakan Jackson?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam