private int parseCount0(@NotNull String name) { try { TemporalAccessor parse = formatter.parse(name); long epochDay = parse.getLong(ChronoField.EPOCH_DAY) * 86400; if (parse.isSupported(ChronoField.SECOND_OF_DAY)) epochDay += parse.getLong(ChronoField.SECOND_OF_DAY); return Maths.toInt32((epochDay - ((epoch) / 1000)) / (length / 1000)); } catch (DateTimeParseException e) { throw new RuntimeException(String.format( "Unable to parse %s using format %s", name, format), e); } }
public Long toLong(File file) { final Long cachedValue = filenameToTimestampCache.get(file); if (cachedValue != null) { return cachedValue; } final TemporalAccessor parse = formatter.parse(fileToName.apply(file)); final long value; if (length == ONE_DAY_IN_MILLIS) { value = parse.getLong(ChronoField.EPOCH_DAY); } else { value = Instant.from(parse).toEpochMilli() / length; } if (filenameToTimestampCache.size() >= MAX_TIMESTAMP_CACHE_SIZE) { filenameToTimestampCache.clear(); } filenameToTimestampCache.put(file, value); return value; }
return TimeUnit.DAYS.toMillis(parseResult.getLong(EPOCH_DAY)) + parseResult.getLong(MILLI_OF_DAY); return packDateTimeWithZone(parseResult.getLong(INSTANT_SECONDS) * 1000 + parseResult.getLong(MILLI_OF_SECOND), getTimeZoneKey(ZoneId.from(parseResult).getId())); return ISO_TIME.parse(textValue).getLong(MILLI_OF_DAY); return ISO_DATE.parse(textValue).getLong(EPOCH_DAY);
} else if (parsedOffset != null) { try { return Optional.of(java.time.Instant.ofEpochSecond(datetime.getLong(ChronoField.INSTANT_SECONDS))); } catch (UnsupportedTemporalTypeException e) { return Optional.of(java.time.LocalDate.of(
/** * Best effort parsing of the given value */ public static LocalDateTime parseBest(String value) { TemporalAccessor parsed = getDateTimeFormatter().parse(value); LocalDate datePart; LocalTime timePart; ZoneOffset zoneOffset; long epochDay = 0, nanoSeconds = 0; int offsetSeconds = 0; // get different parsed parts if (parsed.isSupported(ChronoField.EPOCH_DAY)) { epochDay = parsed.getLong(ChronoField.EPOCH_DAY); } if (parsed.isSupported(ChronoField.NANO_OF_DAY)) { nanoSeconds = parsed.getLong(ChronoField.NANO_OF_DAY); } if (parsed.isSupported(ChronoField.OFFSET_SECONDS)) { offsetSeconds = parsed.get(ChronoField.OFFSET_SECONDS); } zoneOffset = ZoneOffset.ofTotalSeconds(offsetSeconds); datePart = LocalDate.ofEpochDay(epochDay); timePart = LocalTime.ofNanoOfDay(nanoSeconds); return OffsetDateTime.of(datePart, timePart, zoneOffset).toLocalDateTime(); }
} else { if (given.isSupported(ChronoField.NANO_OF_DAY)) { timeFromDefault = LocalTime.ofNanoOfDay(given.getLong(ChronoField.NANO_OF_DAY)); } else if (given.isSupported(ChronoField.MILLI_OF_DAY)) { timeFromDefault = LocalTime.ofNanoOfDay(given.getLong(ChronoField.MILLI_OF_DAY) * 1000000L); } else if (given.isSupported(ChronoField.SECOND_OF_DAY)) { timeFromDefault = LocalTime.ofSecondOfDay(given.getLong(ChronoField.SECOND_OF_DAY)); } else if (given.isSupported(ChronoField.MINUTE_OF_DAY)) { timeFromDefault = LocalTime.ofSecondOfDay(given.getLong(ChronoField.MINUTE_OF_DAY) * 60L); } else { final int hourOfDay;
result = result.with(ChronoField.INSTANT_SECONDS, accessor.getLong(ChronoField.INSTANT_SECONDS)); if (accessor.isSupported(ChronoField.NANO_OF_SECOND)) { result = result.with(ChronoField.NANO_OF_SECOND, accessor.getLong(ChronoField.NANO_OF_SECOND)); result = result.with(ChronoField.YEAR, accessor.getLong(ChronoField.YEAR)); } else if (accessor.isSupported(ChronoField.YEAR_OF_ERA)) { result = result.with(ChronoField.YEAR_OF_ERA, accessor.getLong(ChronoField.YEAR_OF_ERA)); } else if (accessor.isSupported(WeekFields.ISO.weekBasedYear())) { if (accessor.isSupported(WeekFields.ISO.weekOfWeekBasedYear())) { return LocalDate.from(result) .with(WeekFields.ISO.weekBasedYear(), accessor.getLong(WeekFields.ISO.weekBasedYear())) .withDayOfMonth(1) // makes this compatible with joda .with(WeekFields.ISO.weekOfWeekBasedYear(), accessor.getLong(WeekFields.ISO.weekOfWeekBasedYear())) .atStartOfDay(ZoneOffset.UTC); } else { return LocalDate.from(result) .with(WeekFields.ISO.weekBasedYear(), accessor.getLong(WeekFields.ISO.weekBasedYear())) result = result.with(IsoFields.WEEK_BASED_YEAR, accessor.getLong(IsoFields.WEEK_BASED_YEAR)); if (accessor.isSupported(IsoFields.WEEK_OF_WEEK_BASED_YEAR)) { result = result.with(IsoFields.WEEK_OF_WEEK_BASED_YEAR, accessor.getLong(IsoFields.WEEK_OF_WEEK_BASED_YEAR)); result = result.with(ChronoField.MONTH_OF_YEAR, accessor.getLong(ChronoField.MONTH_OF_YEAR)); result = result.with(ChronoField.DAY_OF_MONTH, accessor.getLong(ChronoField.DAY_OF_MONTH)); result = result.with(ChronoField.HOUR_OF_DAY, accessor.getLong(ChronoField.HOUR_OF_DAY)); result = result.with(ChronoField.MINUTE_OF_HOUR, accessor.getLong(ChronoField.MINUTE_OF_HOUR));
@Override public long getFrom(TemporalAccessor temporal){ return temporal.getLong(this); }
@Override public SecondsSinceMidnight queryFrom(TemporalAccessor temporal){ long hoursOfEpoch = temporal.getLong(SecondsSinceMidnight.HOURS_OF_EPOCH); long minutesOfHour = temporal.getLong(ChronoField.MINUTE_OF_HOUR); long secondsOfMinute = temporal.getLong(ChronoField.SECOND_OF_MINUTE); long seconds = (hoursOfEpoch * 60 * 60) + (minutesOfHour * 60) + secondsOfMinute; return new SecondsSinceMidnight(seconds); } };
@Override // override with covariant return type public HijrahDate date(TemporalAccessor temporal) { if (temporal instanceof HijrahDate) { return (HijrahDate) temporal; } return HijrahDate.ofEpochDay(temporal.getLong(EPOCH_DAY)); }
private int parseCount0(@NotNull String name) { try { TemporalAccessor parse = formatter.parse(name); long epochDay = parse.getLong(ChronoField.EPOCH_DAY) * 86400; if (parse.isSupported(ChronoField.SECOND_OF_DAY)) epochDay += parse.getLong(ChronoField.SECOND_OF_DAY); return Maths.toInt32((epochDay - ((epoch) / 1000)) / (length / 1000)); } catch (DateTimeParseException e) { throw new RuntimeException(String.format( "Unable to parse %s using format %s", name, format), e); } }
@Override public long getFrom(TemporalAccessor temporal) { if (temporal.isSupported(this) == false) { throw new UnsupportedTemporalTypeException("Unsupported field: QuarterOfYear"); } long moy = temporal.getLong(MONTH_OF_YEAR); return ((moy + 2) / 3); } @SuppressWarnings("unchecked")
@Override public long getLong(TemporalField field) { if (effectiveDate != null && field.isDateBased()) { return effectiveDate.getLong(field); } return temporal.getLong(field); } @SuppressWarnings("unchecked")
@Override public LocalDate queryFrom(TemporalAccessor temporal) { if (temporal.isSupported(EPOCH_DAY)) { return LocalDate.ofEpochDay(temporal.getLong(EPOCH_DAY)); } return null; } };
@Override public LocalTime queryFrom(TemporalAccessor temporal) { if (temporal.isSupported(NANO_OF_DAY)) { return LocalTime.ofNanoOfDay(temporal.getLong(NANO_OF_DAY)); } return null; } };
@Override public long getFrom(TemporalAccessor temporal) { LocalDate date = LocalDate.ofEpochDay(temporal.getLong(EPOCH_DAY)); int year = date.getYear(); if (year < 1000 || year > 9999) { throw new DateTimeException("Unable to obtain PackedDate from LocalDate: " + date); } int moy = date.getMonthValue(); int dom = date.getDayOfMonth(); return year * 10000 + moy * 100 + dom; }
@Override public long getFrom(TemporalAccessor temporal) { if (temporal.isSupported(this) == false) { throw new UnsupportedTemporalTypeException("Unsupported field: DayOfQuarter"); } int doy = temporal.get(DAY_OF_YEAR); int moy = temporal.get(MONTH_OF_YEAR); long year = temporal.getLong(YEAR); return doy - QUARTER_DAYS[((moy - 1) / 3) + (IsoChronology.INSTANCE.isLeapYear(year) ? 4 : 0)]; } @SuppressWarnings("unchecked")