@Override public int getInt(ChronoElement<Integer> element) { if (this.moment.isLeapSecond() && (element == SECOND_OF_MINUTE)) { return 60; } int value = this.timestamp.getInt(element); if (value == Integer.MIN_VALUE) { value = this.moment.getInt(element); } return value; }
@Override public java.sql.Timestamp from(PlainTimestamp tsp) { long dateMillis = // local millis MathUtils.safeMultiply( tsp.getCalendarDate().get(EpochDays.UNIX), 86400 * 1000 ); long timeMillis = tsp.getInt(PlainTime.MILLI_OF_DAY); if (!WITH_SQL_UTC_CONVERSION) { ZonalOffset offset = Timezone.ofSystem().getOffset(tsp, tsp); timeMillis -= offset.getIntegralAmount() * 1000; } java.sql.Timestamp ret = new java.sql.Timestamp( MathUtils.safeAdd(dateMillis, timeMillis)); ret.setNanos(tsp.getInt(PlainTime.NANO_OF_SECOND)); return ret; }