/** * <p>Parses a canonical representation with only week-based units (Y, W and D) to a * calendrical duration where years are interpreted as week-based years. </p> * * @param period duration in canonical or ISO-8601-compatible format (P-string) * @return parsed calendrical duration * @throws ParseException if parsing fails * @see #parsePeriod(String) * @see CalendarUnit#weekBasedYears() * @since 3.21/4.17 */ /*[deutsch] * <p>Parst eine kanonische Darstellung nur mit wochen-basierten * Datumskomponenten (Y, W, D) zu einer Dauer, in der Jahr als * wochenbasierte Jahre interpretiert werden. </p> * * @param period duration in canonical or ISO-8601-compatible format (P-string) * @return parsed calendrical duration * @throws ParseException if parsing fails * @see #parsePeriod(String) * @see CalendarUnit#weekBasedYears() * @since 3.21/4.17 */ public static Duration<IsoDateUnit> parseWeekBasedPeriod(String period) throws ParseException { return parsePeriod(period, IsoDateUnit.class); }
/** * <p>Parses a canonical representation with only date units to a * calendrical duration. </p> * * @param period duration in canonical, ISO-8601-compatible or * XML-schema-compatible format (P-string) * @return parsed calendrical duration * @throws ParseException if parsing fails * @see #parsePeriod(String) * @see #parseClockPeriod(String) */ /*[deutsch] * <p>Parst eine kanonische Darstellung nur mit * Datumskomponenten zu einer Dauer. </p> * * @param period duration in canonical, ISO-8601-compatible or * XML-schema-compatible format (P-string) * @return parsed calendrical duration * @throws ParseException if parsing fails * @see #parsePeriod(String) * @see #parseClockPeriod(String) */ public static Duration<CalendarUnit> parseCalendarPeriod(String period) throws ParseException { return parsePeriod(period, CalendarUnit.class); }
/** * <p>Parses a canonical representation with only wall time units to a * time-only duration. </p> * * @param period duration in canonical, ISO-8601-compatible or * XML-schema-compatible format (P-string) * @return parsed time-only duration * @throws ParseException if parsing fails * @see #parsePeriod(String) * @see #parseCalendarPeriod(String) */ /*[deutsch] * <p>Parst eine kanonische Darstellung nur mit * Uhrzeitkomponenten zu einer Dauer. </p> * * @param period duration in canonical, ISO-8601-compatible or * XML-schema-compatible format (P-string) * @return parsed time-only duration * @throws ParseException if parsing fails * @see #parsePeriod(String) * @see #parseCalendarPeriod(String) */ public static Duration<ClockUnit> parseClockPeriod(String period) throws ParseException { return parsePeriod(period, ClockUnit.class); }
@Override public PlainTimestamp plusPeriod( PlainTimestamp timepoint, String period, ParseLog plog, AttributeQuery attributes ) { try { return timepoint.plus(Duration.parsePeriod(period)); } catch (ParseException ex) { return null; } }
throws ParseException { return parsePeriod(period, IsoUnit.class);
@Override public PlainTimestamp minusPeriod( PlainTimestamp timepoint, String period, ParseLog plog, AttributeQuery attributes ) { try { return timepoint.minus(Duration.parsePeriod(period)); } catch (ParseException ex) { return null; } }
@Override public Moment plusPeriod( Moment timepoint, String period, ParseLog plog, AttributeQuery attributes ) { Timezone tz = getTimezone(plog.getRawValues(), attributes); PlainTimestamp tsp = timepoint.toZonalTimestamp(tz.getID()); try { return tsp.plus(Duration.parsePeriod(period)).in(tz); } catch (ParseException ex) { return null; } }
@Override public Moment minusPeriod( Moment timepoint, String period, ParseLog plog, AttributeQuery attributes ) { Timezone tz = getTimezone(plog.getRawValues(), attributes); PlainTimestamp tsp = timepoint.toZonalTimestamp(tz.getID()); try { return tsp.minus(Duration.parsePeriod(period)).in(tz); } catch (ParseException ex) { return null; } }
boolean extended = isExtendedFormat(parts[1]); ZonalDateTime zdt = ZonalDateTime.parse(parts[1], momentFormatter(extended)); Duration<?> duration = Duration.parsePeriod(parts[2]); recurrence = IsoRecurrence.of(count, zdt.toMoment(), duration, zdt.getOffset()); } else if (parts[1].charAt(0) == 'P') { Duration<?> duration = Duration.parsePeriod(parts[1]); boolean extended = isExtendedFormat(parts[2]); ZonalDateTime zdt = ZonalDateTime.parse(parts[2], momentFormatter(extended));
boolean extended = isExtendedFormat(parts[1]); PlainTimestamp start = timestampFormatter(extended).parse(parts[1]); Duration<?> duration = Duration.parsePeriod(parts[2]); recurrence = IsoRecurrence.of(count, start, duration); } else if (parts[1].charAt(0) == 'P') { Duration<?> duration = Duration.parsePeriod(parts[1]); boolean extended = isExtendedFormat(parts[2]); PlainTimestamp end = timestampFormatter(extended).parse(parts[2]);