in xstream/src/java/com/thoughtworks/xstream/core/util/ISO8601JavaTimeConverter.java [117:280]
public Object fromString(final String str) {
try {
final OffsetDateTime odt = OffsetDateTime.parse(str);
return GregorianCalendar.from(odt.atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDateTime ldt = LocalDateTime.parse(str);
return GregorianCalendar.from(ldt.atZone(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final Instant instant = Instant.parse(str);
return GregorianCalendar.from(instant.atZone(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetDateTime odt = BASIC_DATE_TIME.parse(str, OffsetDateTime::from);
return GregorianCalendar.from(odt.atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetDateTime odt = STD_ORDINAL_DATE_TIME.parse(str, OffsetDateTime::from);
return GregorianCalendar.from(odt.atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetDateTime odt = BASIC_ORDINAL_DATE_TIME.parse(str, OffsetDateTime::from);
return GregorianCalendar.from(odt.atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetTime ot = OffsetTime.parse(str);
return GregorianCalendar.from(ot.atDate(LocalDate.ofEpochDay(0)).atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetTime ot = BASIC_TIME.parse(str, OffsetTime::from);
return GregorianCalendar.from(ot.atDate(LocalDate.ofEpochDay(0)).atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetTime ot = ISO_TTIME.parse(str, OffsetTime::from);
return GregorianCalendar.from(ot.atDate(LocalDate.ofEpochDay(0)).atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final OffsetTime ot = BASIC_TTIME.parse(str, OffsetTime::from);
return GregorianCalendar.from(ot.atDate(LocalDate.ofEpochDay(0)).atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final TemporalAccessor ta = ISO_WEEK_DATE_TIME.withLocale(Locale.getDefault()).parse(str);
final Year y = Year.from(ta);
final MonthDay md = MonthDay.from(ta);
final OffsetTime ot = OffsetTime.from(ta);
return GregorianCalendar.from(ot.atDate(y.atMonthDay(md)).atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final TemporalAccessor ta = BASIC_WEEK_DATE_TIME.withLocale(Locale.getDefault()).parse(str);
final Year y = Year.from(ta);
final MonthDay md = MonthDay.from(ta);
final OffsetTime ot = OffsetTime.from(ta);
return GregorianCalendar.from(ot.atDate(y.atMonthDay(md)).atZoneSameInstant(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDate ld = LocalDate.parse(str);
return GregorianCalendar.from(ld.atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDate ld = LocalDate.parse(str, DateTimeFormatter.BASIC_ISO_DATE);
return GregorianCalendar.from(ld.atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDate ld = LocalDate.parse(str, DateTimeFormatter.ISO_ORDINAL_DATE);
return GregorianCalendar.from(ld.atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDate ld = BASIC_ORDINAL_DATE.parse(str, LocalDate::from);
return GregorianCalendar.from(ld.atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDate ld = LocalDate.parse(str, DateTimeFormatter.ISO_WEEK_DATE.withLocale(Locale.getDefault()));
return GregorianCalendar.from(ld.atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final TemporalAccessor ta = BASIC_WEEK_DATE.withLocale(Locale.getDefault()).parse(str);
final Year y = Year.from(ta);
final MonthDay md = MonthDay.from(ta);
return GregorianCalendar.from(y.atMonthDay(md).atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalDateTime ldt = STD_DATE_HOUR.parse(str, LocalDateTime::from);
return GregorianCalendar.from(ldt.atZone(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalTime lt = STD_HOUR.parse(str, LocalTime::from);
return GregorianCalendar.from(lt.atDate(LocalDate.ofEpochDay(0)).atZone(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final LocalTime lt = LocalTime.parse(str);
return GregorianCalendar.from(lt.atDate(LocalDate.ofEpochDay(0)).atZone(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final YearMonth ym = YearMonth.parse(str);
return GregorianCalendar.from(ym.atDay(1).atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final Year y = Year.parse(str);
return GregorianCalendar.from(y.atDay(1).atStartOfDay(ZoneId.systemDefault()));
} catch (final DateTimeParseException e) {
// try with next formatter
}
try {
final TemporalAccessor ta = STD_YEAR_WEEK.withLocale(Locale.getDefault()).parse(str);
final int y = ta.get(WeekFields.ISO.weekBasedYear());
final int w = ta.get(IsoFields.WEEK_OF_WEEK_BASED_YEAR);
return GregorianCalendar.from(LocalDateTime
.from(ta)
.with(WeekFields.ISO.weekOfYear(), y)
.with(WeekFields.ISO.weekOfWeekBasedYear(), w)
.atZone(ZoneId.systemDefault()));
// } catch (final IllegalArgumentException e) { // TODO: DateTimeParseException
} catch (final DateTimeParseException e) {
// try with next formatter
}
final ConversionException exception = new ConversionException("Cannot parse date");
exception.add("date", str);
throw exception;
}