When you are using Calendar
you can set the TimeZone
you wish to use:
Java Model
Root
Below is a simple Java object that has 2 mapped Calendar
fields.
import java.util.Calendar;
import javax.xml.bind.annotation.*;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Root {
Calendar defaultTimeZone;
Calendar setTimeZone;
}
Demo Code
Demo
In the demo code below we will create two instances of Calendar
on defaultTimeZone
it will have the default time zone (my environment is Canada/Eastern) and on setTimeZone
we will specify 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);
}
}
Output
<?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>