List of usage examples for java.time.format DateTimeParseException printStackTrace
public void printStackTrace()
From source file:msi.gama.util.GamaDate.java
private static Temporal parse(final IScope scope, final String original, final DateTimeFormatter df) { if (original == null || original.isEmpty() || original.equals("now")) { return LocalDateTime.now(GamaDateType.DEFAULT_ZONE); }/*from w ww . java2 s .co m*/ Temporal result = null; if (df != null) { try { final TemporalAccessor ta = df.parse(original); if (ta instanceof Temporal) { return (Temporal) ta; } if (!ta.isSupported(ChronoField.YEAR) && !ta.isSupported(ChronoField.MONTH_OF_YEAR) && !ta.isSupported(ChronoField.DAY_OF_MONTH)) { if (ta.isSupported(ChronoField.HOUR_OF_DAY)) { return LocalTime.from(ta); } } if (!ta.isSupported(ChronoField.HOUR_OF_DAY) && !ta.isSupported(ChronoField.MINUTE_OF_HOUR) && !ta.isSupported(ChronoField.SECOND_OF_MINUTE)) { return LocalDate.from(ta); } return LocalDateTime.from(ta); } catch (final DateTimeParseException e) { e.printStackTrace(); } GAMA.reportAndThrowIfNeeded(scope, GamaRuntimeException.warning( "The date " + original + " can not correctly be parsed by the pattern provided", scope), false); return parse(scope, original, null); } String dateStr; try { // We first make sure all date fields have the correct length and // the string is correctly formatted String string = original; if (!original.contains("T") && original.contains(" ")) { string = StringUtils.replaceOnce(original, " ", "T"); } final String[] base = string.split("T"); final String[] date = base[0].split("-"); String other; if (base.length == 1) { other = "00:00:00"; } else { other = base[1]; } String year, month, day; if (date.length == 1) { // ISO basic date format year = date[0].substring(0, 4); month = date[0].substring(4, 6); day = date[0].substring(6, 8); } else { year = date[0]; month = date[1]; day = date[2]; } if (year.length() == 2) { year = "20" + year; } if (month.length() == 1) { month = '0' + month; } if (day.length() == 1) { day = '0' + day; } dateStr = year + "-" + month + "-" + day + "T" + other; } catch (final Exception e1) { throw GamaRuntimeException.error("The date " + original + " is not correctly formatted. Please refer to the ISO date/time format", scope); } try { result = LocalDateTime.parse(dateStr); } catch (final DateTimeParseException e) { try { result = OffsetDateTime.parse(dateStr); } catch (final DateTimeParseException e2) { try { result = ZonedDateTime.parse(dateStr); } catch (final DateTimeParseException e3) { throw GamaRuntimeException.error( "The date " + original + " is not correctly formatted. Please refer to the ISO date/time format", scope); } } } return result; }