in juneau-utest-utils/src/main/java/org/apache/juneau/testutils/CalendarUtils.java [423:476]
public static final String serialize(Calendar c, CalendarUtils.Format format, Locale locale, TimeZone timeZone) {
if (c == null)
return null;
if (timeZone == null)
timeZone = c.getTimeZone();
switch(format) {
case ISO8601_DTL:
case ISO8601_D:
case RFC2822_D:
case RFC2822_DT:
case TO_STRING:
case FULL_D:
case FULL_DT:
case FULL_T:
case LONG_D:
case LONG_DT:
case LONG_T:
case MEDIUM_D:
case MEDIUM_DT:
case MEDIUM_T:
case SHORT_D:
case SHORT_DT:
case SHORT_T:
case SIMPLE_D:
case SIMPLE_DT:
case SIMPLE_T:
return serializeFromDateFormat(c.getTime(), format, locale, timeZone);
case ISO8601_DT:
return DatatypeConverter.printDateTime(setTimeZone(c, timeZone));
case ISO8601_DTP:
String s = DatatypeConverter.printDateTime(setTimeZone(c, timeZone));
return String.format("%s.%03d%s", s.substring(0, 19), c.get(Calendar.MILLISECOND), s.substring(19));
case ISO8601_DTZ:
if (c.getTimeZone().getRawOffset() != 0) {
Calendar c2 = Calendar.getInstance(GMT);
c2.setTime(c.getTime());
c = c2;
}
return DatatypeConverter.printDateTime(c);
case ISO8601_DTPZ:
if (c.getTimeZone().getRawOffset() != 0) {
Calendar c2 = Calendar.getInstance(GMT);
c2.setTime(c.getTime());
c = c2;
}
s = DatatypeConverter.printDateTime(c);
return String.format("%s.%03d%s", s.substring(0, 19), c.get(Calendar.MILLISECOND), s.substring(19));
case RFC2822_DTZ:
return serializeFromDateFormat(c.getTime(), format, locale, GMT);
default:
break;
}
return null;
}