第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

jaxb定制Date類型的序列化方式

標(biāo)簽:
Java

我们先看下面的demo代码,看下jaxb序列化Date类型的默认方式:

package cn.outofmemory.jaxb; import java.util.Date; import javax.xml.bind.JAXB; import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; public class JAXB_DateDemo { private Date someDate; public Date getSomeDate() { return someDate; } public void setSomeDate(Date someDate) { this.someDate = someDate; } public static void main(String[] args) { JAXB_DateDemo demo = new JAXB_DateDemo(); demo.setSomeDate(new Date()); JAXB.marshal(demo, System.out); } }

运行上面代码,将输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JAXB_DateDemo>     <someDate>2014-05-12T18:12:22.272+08:00</someDate> </JAXB_DateDemo>

可以看到Date类型被序列化成了 2014-05-12T18:12:22.272+08:00  这对实际使用没有什么影响,但是对可读性不友好。

 我们可以选择我们想要的日期格式化方式,来让jaxb做序列化。我们需要添加一个XmlAdapter<String, Date>来实现Date类型的定制格式化和反序列化。

如下是JaxbDateAdapter的实现:

package cn.outofmemory.jaxb; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.xml.bind.annotation.adapters.XmlAdapter; public class JaxbDateAdapter  extends XmlAdapter<String, Date> { static final String STANDARM_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss.SSS"; @Override public Date unmarshal(String v) throws Exception { if (v == null) { return null; } DateFormat format = new SimpleDateFormat(STANDARM_DATE_FORMAT); return format.parse(v); } @Override public String marshal(Date v) throws Exception { DateFormat format = new SimpleDateFormat(STANDARM_DATE_FORMAT); return format.format(v); } }

在这个类中我们需要实现marshal和unmarshal方法,在这个方法中实现对Date类型的定制化格式化。

有了Adapter类,我们需要在Date属性上添加这个Adapter来告诉jaxb使用它。

 @XmlJavaTypeAdapter(JaxbDateAdapter.class)  public Date getSomeDate() { return someDate; }

在getSomeDate()属性上添加XmlJavaTypeAdapter注解,指定Adapter类,这样就可以在此属性的Date类型上应用Adapter了,我们可以再次运行程序看下输出:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <JAXB_DateDemo>     <someDate>2014-05-12 18:18:28.833</someDate> </JAXB_DateDemo>

这次的输出是我们定制的Date格式了。

原文链接:http://outofmemory.cn/java/jaxb/jaxb-and-java.util.Date

點擊查看更多內(nèi)容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消