Skip to content
This repository was archived by the owner on Jul 1, 2025. It is now read-only.

Commit e6c930d

Browse files
committed
Normalized the XMLGregorianCalendar used in Marshalling to get the "Z"
format.
1 parent 085db64 commit e6c930d

2 files changed

Lines changed: 18 additions & 0 deletions

File tree

src/main/java/org/energyos/espi/common/models/atom/adapters/DateTimeAdapter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.energyos.espi.common.models.atom.adapters;
1818

19+
import java.text.SimpleDateFormat;
20+
1921
import org.energyos.espi.common.models.atom.DateTimeType;
2022
import org.joda.time.DateTime;
2123
import org.joda.time.DateTimeZone;
@@ -32,6 +34,9 @@ public DateTime unmarshal(JAXBElement<DateTimeType> v) throws Exception {
3234

3335
@Override
3436
public JAXBElement<DateTimeType> marshal(DateTime v) throws Exception {
37+
SimpleDateFormat fmt = new SimpleDateFormat( "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'" );
38+
39+
String dateFormatted = fmt.format(v.toDate());
3540
return null;
3641
}
3742
}

src/main/java/org/energyos/espi/common/utils/AtomMarshallerListener.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11

22
package org.energyos.espi.common.utils;
33

4+
import java.text.SimpleDateFormat;
5+
import java.util.GregorianCalendar;
46
import java.util.List;
7+
import java.util.TimeZone;
58

69
import javax.xml.bind.Marshaller;
10+
import javax.xml.datatype.XMLGregorianCalendar;
711

812
import org.energyos.espi.common.models.atom.ContentType;
13+
import org.energyos.espi.common.models.atom.DateTimeType;
914
import org.energyos.espi.common.models.atom.EntryType;
1015
import org.energyos.espi.common.models.atom.LinkType;
1116

@@ -46,6 +51,14 @@ public void beforeMarshal(Object source) {
4651
((LinkType) source).setHref(relRefList.remove(0));
4752
}
4853
}
54+
55+
if ((source instanceof DateTimeType)) {
56+
// Normalize the calendar so it will print the "Z" correctly
57+
XMLGregorianCalendar xmlCal = ((DateTimeType)source).getValue();
58+
XMLGregorianCalendar xmlCal1 = xmlCal.normalize();
59+
((DateTimeType)source).setValue(xmlCal1);
60+
}
61+
4962
}
5063

5164
@Override

0 commit comments

Comments
 (0)