private static void appendSecondsToDurationString(final StringBuilder sb, final long seconds, final long nanoseconds) { if (seconds < 0 && nanoseconds > 0) { if (seconds == -1) { sb.append("0"); } else { sb.append(Math.abs(seconds + 1)); } } else { sb.append(Math.abs(seconds)); } if (nanoseconds > 0) { final int pos = sb.length(); if (seconds < 0) { sb.append(2 * NANOSECONDS_PER_SECOND - nanoseconds); } else { sb.append(nanoseconds + NANOSECONDS_PER_SECOND); } eliminateTrailingZeros(sb); sb.setCharAt(pos, '.'); } sb.append('S'); }
public static String formatValue(final Object val, final boolean wrapForCodeUsage) { if (val instanceof String) { return formatString(val.toString(), wrapForCodeUsage); } else if (val instanceof LocalDate) { return formatDate((LocalDate) val, wrapForCodeUsage); } else if (val instanceof LocalTime || val instanceof OffsetTime) { return formatTimeString(TimeFunction.FEEL_TIME.format((TemporalAccessor) val), wrapForCodeUsage); } else if (val instanceof LocalDateTime || val instanceof OffsetDateTime) { return formatDateTimeString(DateAndTimeFunction.FEEL_DATE_TIME.format((TemporalAccessor) val), wrapForCodeUsage); } else if (val instanceof ZonedDateTime) { TemporalAccessor ta = (TemporalAccessor) val; return formatDateTimeString(DateAndTimeFunction.REGION_DATETIME_FORMATTER.format((TemporalAccessor) val), wrapForCodeUsage); } else { return formatDateTimeString(DateAndTimeFunction.FEEL_DATE_TIME.format((TemporalAccessor) val), wrapForCodeUsage); return formatDuration((Duration) val, wrapForCodeUsage); } else if (val instanceof Period) { return formatPeriod((Period) val, wrapForCodeUsage); } else if (val instanceof TemporalAccessor) { TemporalAccessor ta = (TemporalAccessor) val; if (ta.query(TemporalQueries.localDate()) == null && ta.query(TemporalQueries.localTime()) != null && ta.query(TemporalQueries.zoneId()) != null) { return formatTimeString(TimeFunction.FEEL_TIME.format((TemporalAccessor) val), wrapForCodeUsage); } else { return String.valueOf(val); return formatList((List) val, wrapForCodeUsage); } else if (val instanceof Range) { return formatRange((Range) val, wrapForCodeUsage); } else if (val instanceof Map) {
appendToDurationString(sb, days, "D"); appendToDurationString(sb, hours, "H"); appendToDurationString(sb, minutes, "M"); appendSecondsToDurationString(sb, seconds, duration.getNano());
public ComparablePeriod(Period value) { this.left = value.getYears() * 12 + value.getMonths(); this.toStringRep = TypeUtil.formatPeriod(value, true); }