When you use Calendar
, you can set the TimeZone
you want to use:
Java Model
Root
Below is a simple Java object that has 2 Calendar
fields displayed.
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 a default time zone (my environment is Canada / East), and in 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); } }
Exit
<?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>
source share