xwh*_*hyz 5 java xml date jaxb
我有一个简短的问题:
从 xsd 生成 xjc 类之后,我的对象需要日历,这就是我提供的。但是在将其编组为 XML 后,我的日期格式如下:
<InfoDateTime v="2013-09-03T00:00:00+02:00"/>
Run Code Online (Sandbox Code Playgroud)
而我想要:
<InfoDateTime v="2013-09-03T00:00:00Z"/>
Run Code Online (Sandbox Code Playgroud)
我不使用带注释的 jaxb 而是使用绑定文件,但是否可以不创建可以解析日期和字符串的类?
谢谢!
使用时Calendar您可以设置TimeZone您想要使用的:
根
下面是一个简单的 Java 对象,它有 2 个映射Calendar字段。
import java.util.Calendar;
import javax.xml.bind.annotation.*;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
Calendar defaultTimeZone;
Calendar setTimeZone;
}
Run Code Online (Sandbox Code Playgroud)
演示
在下面的演示代码中,我们将创建两个实例,Calendar它将defaultTimeZone具有默认时区(我的环境是加拿大/东部),并且setTimeZone我们将指定 GMT。
import java.util.*;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Root.class);
Root root = new Root();
root.defaultTimeZone = Calendar.getInstance();
root.setTimeZone = Calendar.getInstance();
root.setTimeZone.setTimeZone(TimeZone.getTimeZone("GMT"));
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(root, System.out);
}
}
Run Code Online (Sandbox Code Playgroud)
输出
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<defaultTimeZone>2013-09-03T09:40:59.443-04:00</defaultTimeZone>
<setTimeZone>2013-09-03T13:40:59.443Z</setTimeZone>
</root>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5657 次 |
| 最近记录: |