* @return Textdarstellung. */
	@Override
	public final String toString() {
		final int sing = this.signValue();
		if (sing == 0) return "P0Y";
		final StringBuilder result = new StringBuilder();
		result.append(sing < 0 ? "-P" : "P");
		final int years = this.yearsValue(), months = this.monthsValue();
		if (years != 0) {
			result.append(years).append('Y');
		}
		if (months != 0) {
			result.append(months).append('M');
		}
		final int days = this.daysValue();
		if (days != 0) {
			result.append(days).append('D');
		}
		final int hours = this.hoursValue(), minutes = this.minutesValue(), seconds = this.secondsValue(), milliseconds = this.millisecondsValue();
		if ((hours | minutes | seconds | milliseconds) != 0) {
			result.append('T');
		}
		if (hours != 0) {
			result.append(hours).append('H');
		}
		if (minutes != 0) {
			result.append(minutes).append('M');
		}
		if (milliseconds != 0) {
			result.append(String.format("%d.%03dS", seconds, milliseconds));
		} else if (seconds != 0) {
			result.append(seconds).append('S');
		}
		return result.toString();
	}