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

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

王林
Lepaskan: 2023-08-27 11:17:02
ke hadapan
939 orang telah melayarinya

在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>
Salin selepas log masuk

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]";
   }
}
Salin selepas log masuk

Output

Employee [
 createDate=Mon Dec 08 00:00:00 IST 1980,
 createDateGmt=Mon Dec 08 07:30:00 IST 1980
]
Salin selepas log masuk

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!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan