in src/main/java/org/apache/commons/beanutils2/converters/DateTimeConverter.java [513:580]
private <T> T toDate(final Class<T> type, final long value) {
// java.util.Date
if (type.equals(Date.class)) {
return type.cast(new Date(value));
}
// java.sql.Date
if (type.equals(java.sql.Date.class)) {
return type.cast(new java.sql.Date(value));
}
// java.sql.Time
if (type.equals(java.sql.Time.class)) {
return type.cast(new java.sql.Time(value));
}
// java.sql.Timestamp
if (type.equals(java.sql.Timestamp.class)) {
return type.cast(new java.sql.Timestamp(value));
}
// java.time.LocalDateTime
if (type.equals(LocalDate.class)) {
final LocalDate localDate = Instant.ofEpochMilli(value).atZone(getZoneId()).toLocalDate();
return type.cast(localDate);
}
// java.time.LocalDateTime
if (type.equals(LocalDateTime.class)) {
final LocalDateTime localDateTime = Instant.ofEpochMilli(value).atZone(getZoneId()).toLocalDateTime();
return type.cast(localDateTime);
}
// java.time.ZonedDateTime
if (type.equals(ZonedDateTime.class)) {
final ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(Instant.ofEpochMilli(value), getZoneId());
return type.cast(zonedDateTime);
}
// java.time.OffsetDateTime
if (type.equals(OffsetDateTime.class)) {
final OffsetDateTime offsetDateTime = OffsetDateTime.ofInstant(Instant.ofEpochMilli(value), getZoneId());
return type.cast(offsetDateTime);
}
// java.util.Calendar
if (type.equals(Calendar.class)) {
Calendar calendar = null;
if (locale == null && timeZone == null) {
calendar = Calendar.getInstance();
} else if (locale == null) {
calendar = Calendar.getInstance(timeZone);
} else if (timeZone == null) {
calendar = Calendar.getInstance(locale);
} else {
calendar = Calendar.getInstance(timeZone, locale);
}
calendar.setTime(new Date(value));
calendar.setLenient(false);
return type.cast(calendar);
}
final String msg = toString(getClass()) + " cannot handle conversion to '" + toString(type) + "'";
if (log().isWarnEnabled()) {
log().warn(" " + msg);
}
throw new ConversionException(msg);
}