List of usage examples for org.joda.time DateTime minusMillis
public DateTime minusMillis(int millis)
From source file:org.apache.pig.pen.AugmentBaseDataVisitor.java
License:Apache License
Object GetSmallerValue(Object v) { byte type = DataType.findType(v); if (type == DataType.BAG || type == DataType.TUPLE || type == DataType.MAP) return null; switch (type) { case DataType.CHARARRAY: String str = (String) v; if (str.length() > 0) return str.substring(0, str.length() - 1); else// w w w. j a v a 2 s .c o m return null; case DataType.BYTEARRAY: DataByteArray data = (DataByteArray) v; if (data.size() > 0) return new DataByteArray(data.get(), 0, data.size() - 1); else return null; case DataType.INTEGER: return Integer.valueOf((Integer) v - 1); case DataType.LONG: return Long.valueOf((Long) v - 1); case DataType.FLOAT: return Float.valueOf((Float) v - 1); case DataType.DOUBLE: return Double.valueOf((Double) v - 1); case DataType.BIGINTEGER: return ((BigInteger) v).subtract(BigInteger.ONE); case DataType.BIGDECIMAL: return ((BigDecimal) v).subtract(BigDecimal.ONE); case DataType.DATETIME: DateTime dt = (DateTime) v; if (dt.getMillisOfSecond() != 0) { return dt.minusMillis(1); } else if (dt.getSecondOfMinute() != 0) { return dt.minusSeconds(1); } else if (dt.getMinuteOfHour() != 0) { return dt.minusMinutes(1); } else if (dt.getHourOfDay() != 0) { return dt.minusHours(1); } else { return dt.minusDays(1); } default: return null; } }
From source file:org.apereo.portal.events.aggr.PortalEventPurgerImpl.java
License:Apache License
@AggrEventsTransactional public EventProcessingResult doPurgeRawEvents() { if (!this.clusterLockService.isLockOwner(PURGE_RAW_EVENTS_LOCK_NAME)) { throw new IllegalStateException("The cluster lock " + PURGE_RAW_EVENTS_LOCK_NAME + " must be owned by the current thread and server"); }/*from w w w .j av a 2 s . c o m*/ final IEventAggregatorStatus eventPurgerStatus = eventAggregationManagementDao .getEventAggregatorStatus(IEventAggregatorStatus.ProcessingType.PURGING, true); //Update status with current server name final String serverName = this.portalInfoProvider.getUniqueServerName(); eventPurgerStatus.setServerName(serverName); eventPurgerStatus.setLastStart(new DateTime()); //Determine date of most recently aggregated data final IEventAggregatorStatus eventAggregatorStatus = eventAggregationManagementDao .getEventAggregatorStatus(IEventAggregatorStatus.ProcessingType.AGGREGATION, false); if (eventAggregatorStatus == null || eventAggregatorStatus.getLastEventDate() == null) { //Nothing has been aggregated, skip purging eventPurgerStatus.setLastEnd(new DateTime()); eventAggregationManagementDao.updateEventAggregatorStatus(eventPurgerStatus); return new EventProcessingResult(0, null, null, true); } boolean complete = true; //Calculate purge end date from most recent aggregation minus the purge delay final DateTime lastAggregated = eventAggregatorStatus.getLastEventDate(); DateTime purgeEnd = lastAggregated.minus(this.purgeDelay); //Determine the DateTime of the oldest event DateTime oldestEventDate = eventPurgerStatus.getLastEventDate(); if (oldestEventDate == null) { oldestEventDate = this.portalEventDao.getOldestPortalEventTimestamp(); } //Make sure purgeEnd is no more than 1 hour after the oldest event date to limit delete scope final DateTime purgeEndLimit = oldestEventDate.plusHours(1); if (purgeEndLimit.isBefore(purgeEnd)) { purgeEnd = purgeEndLimit; complete = false; } final Thread currentThread = Thread.currentThread(); final String currentName = currentThread.getName(); final int events; try { currentThread.setName(currentName + "-" + purgeEnd); //Purge events logger.debug("Starting purge of events before {}", purgeEnd); events = portalEventDao.deletePortalEventsBefore(purgeEnd); } finally { currentThread.setName(currentName); } //Update the status object and store it purgeEnd = purgeEnd.minusMillis(100); //decrement by 100ms since deletePortalEventsBefore uses lessThan and not lessThanEqualTo eventPurgerStatus.setLastEventDate(purgeEnd); eventPurgerStatus.setLastEnd(new DateTime()); eventAggregationManagementDao.updateEventAggregatorStatus(eventPurgerStatus); return new EventProcessingResult(events, oldestEventDate, purgeEnd, complete); }
From source file:org.jasig.portal.events.aggr.PortalEventAggregationManagerImpl.java
License:Apache License
void doPurgeRawEvents() { final IEventAggregatorStatus eventPurgerStatus = eventAggregationManagementDao .getEventAggregatorStatus(ProcessingType.PURGING, true); //Update status with current server name final String serverName = this.portalInfoProvider.getServerName(); eventPurgerStatus.setServerName(serverName); eventPurgerStatus.setLastStart(new DateTime()); //Determine date of most recently aggregated data final IEventAggregatorStatus eventAggregatorStatus = eventAggregationManagementDao .getEventAggregatorStatus(ProcessingType.AGGREGATION, false); if (eventAggregatorStatus == null || eventAggregatorStatus.getLastEventDate() == null) { //Nothing has been aggregated, skip purging eventPurgerStatus.setLastEnd(new DateTime()); eventAggregationManagementDao.updateEventAggregatorStatus(eventPurgerStatus); return;//from w ww . j a va 2s . c o m } //Calculate purge end date from most recent aggregation minus the purge delay final DateTime lastAggregated = eventAggregatorStatus.getLastEventDate(); final DateTime purgeEnd = lastAggregated.minus(this.purgeDelay); //Purge events logger.debug("Starting purge of events before {}", purgeEnd); final long start = System.nanoTime(); final int events = portalEventDao.deletePortalEventsBefore(purgeEnd); logger.debug("Purged {} events before {} in {}ms", new Object[] { events, purgeEnd, TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - start) }); //Update the status object and store it eventPurgerStatus.setLastEventDate(purgeEnd.minusMillis(1)); //decrement by 1ms since deletePortalEventsBefore uses lessThan and not lessThanEqualTo eventPurgerStatus.setLastEnd(new DateTime()); eventAggregationManagementDao.updateEventAggregatorStatus(eventPurgerStatus); }
From source file:org.jasig.portal.events.aggr.PortalEventPurgerImpl.java
License:Apache License
@AggrEventsTransactional public EventProcessingResult doPurgeRawEvents() { if (!this.clusterLockService.isLockOwner(PURGE_RAW_EVENTS_LOCK_NAME)) { throw new IllegalStateException("The cluster lock " + PURGE_RAW_EVENTS_LOCK_NAME + " must be owned by the current thread and server"); }/*from ww w . ja v a 2s.c o m*/ final IEventAggregatorStatus eventPurgerStatus = eventAggregationManagementDao .getEventAggregatorStatus(ProcessingType.PURGING, true); //Update status with current server name final String serverName = this.portalInfoProvider.getUniqueServerName(); eventPurgerStatus.setServerName(serverName); eventPurgerStatus.setLastStart(new DateTime()); //Determine date of most recently aggregated data final IEventAggregatorStatus eventAggregatorStatus = eventAggregationManagementDao .getEventAggregatorStatus(ProcessingType.AGGREGATION, false); if (eventAggregatorStatus == null || eventAggregatorStatus.getLastEventDate() == null) { //Nothing has been aggregated, skip purging eventPurgerStatus.setLastEnd(new DateTime()); eventAggregationManagementDao.updateEventAggregatorStatus(eventPurgerStatus); return new EventProcessingResult(0, null, null, true); } boolean complete = true; //Calculate purge end date from most recent aggregation minus the purge delay final DateTime lastAggregated = eventAggregatorStatus.getLastEventDate(); DateTime purgeEnd = lastAggregated.minus(this.purgeDelay); //Determine the DateTime of the oldest event DateTime oldestEventDate = eventPurgerStatus.getLastEventDate(); if (oldestEventDate == null) { oldestEventDate = this.portalEventDao.getOldestPortalEventTimestamp(); } //Make sure purgeEnd is no more than 1 hour after the oldest event date to limit delete scope final DateTime purgeEndLimit = oldestEventDate.plusHours(1); if (purgeEndLimit.isBefore(purgeEnd)) { purgeEnd = purgeEndLimit; complete = false; } final Thread currentThread = Thread.currentThread(); final String currentName = currentThread.getName(); final int events; try { currentThread.setName(currentName + "-" + purgeEnd); //Purge events logger.debug("Starting purge of events before {}", purgeEnd); events = portalEventDao.deletePortalEventsBefore(purgeEnd); } finally { currentThread.setName(currentName); } //Update the status object and store it purgeEnd = purgeEnd.minusMillis(100); //decrement by 100ms since deletePortalEventsBefore uses lessThan and not lessThanEqualTo eventPurgerStatus.setLastEventDate(purgeEnd); eventPurgerStatus.setLastEnd(new DateTime()); eventAggregationManagementDao.updateEventAggregatorStatus(eventPurgerStatus); return new EventProcessingResult(events, oldestEventDate, purgeEnd, complete); }
From source file:org.n52.sos.request.operator.AqdGetObservationOperatorV10.java
License:Open Source License
private void checkRequestForFlowAndTemporalFilter(GetObservationRequest request, ReportObligationType flow) throws CodedException { try {/* w w w .jav a 2 s. co m*/ if (!request.isSetTemporalFilter()) { DateTime start = null; DateTime end = null; DateTime dateTime = new DateTime(); if (ReportObligationType.E2A.equals(flow)) { String timeString; timeString = DateTimeHelper.formatDateTime2YearMonthDayDateStringYMD(dateTime.minusDays(1)); start = DateTimeHelper.parseIsoString2DateTime(timeString); int timeLength = DateTimeHelper.getTimeLengthBeforeTimeZone(timeString); DateTime origEnd = DateTimeHelper.parseIsoString2DateTime(timeString); end = DateTimeHelper.setDateTime2EndOfMostPreciseUnit4RequestedEndPosition(origEnd, timeLength); } else if (ReportObligationType.E1A.equals(flow) || ReportObligationType.E1B.equals(flow)) { String year = Integer.toString(dateTime.minusYears(1).getYear()); start = DateTimeHelper.parseIsoString2DateTime(year); int timeLength = DateTimeHelper.getTimeLengthBeforeTimeZone(year); end = DateTimeHelper.setDateTime2EndOfMostPreciseUnit4RequestedEndPosition( DateTimeHelper.parseIsoString2DateTime(year), timeLength); } if (start != null && end != null) { request.setTemporalFilters( getTemporalFilter(new TimePeriod(start.minusMillis(1), end.plusMillis(2)))); } } } catch (DateTimeFormatException | DateTimeParseException e) { throw new NoApplicableCodeException().causedBy(e).withMessage( "The request does not contain a temporal filter and the temporal filter creation for the flow fails!"); } }
From source file:org.openmainframe.ade.ext.output.ExtOutputFilenameGenerator.java
License:Open Source License
/** * A public method to get the Interval Serial Number given the end time. * @param intervalStartTime/*from w ww.j a v a 2s .c om*/ * @param intervalEndTime * @return * @throws AdeException */ public static int getIntervalSerialNumber(long intervalEndTime, FramingFlowType framingFlowType) throws AdeException { final long xmlHardenedLength = XMLUtil.getXMLHardenedDurationInMillis(framingFlowType); final long intervalEndTimeMillis = intervalEndTime; final DateTime dateTime = new DateTime(intervalEndTimeMillis).withZone(getOutputTimeZone()); final DateTime startOfDay = dateTime.minusMillis(1).withTimeAtStartOfDay(); final long diffInMillis = dateTime.getMillis() - startOfDay.getMillis(); int intervalSerialNum = (int) (diffInMillis / xmlHardenedLength) - 1; if (((int) diffInMillis % xmlHardenedLength) != 0) { intervalSerialNum++; } return intervalSerialNum; }
From source file:org.openmainframe.ade.ext.stats.MessageRateStats.java
License:Open Source License
/** * Return the end of day of yesterday/*ww w . ja va 2 s .c om*/ * @param dateTime * @return */ private DateTime getYesterdayEndOfDay(DateTime dateTime) { dateTime = dateTime.withTimeAtStartOfDay(); dateTime = dateTime.minusMillis(1); return dateTime; }
From source file:petascope.util.TimeUtil.java
License:Open Source License
/** * Removes an epsilon to the input timestamp. * <p>//from w ww . j a va2s .c o m * When translating to cell indexes, there is a particular case: * <p> * 9h00 10h00 11h00 12h00 13h00 * o---------o---------o---------o---------o * cell0 cell1 cell2 cell3 * <p> * E.g. subset=t(10h00:18h00) * cellLo = cellMin + countPixels( 9h00:10h00) = cellMin + 1 * cellHi = cellLo + countPixels(10h00:13h00) = cellLo + 3 --> overflow * <p> * Whereas subset=t(10h01:18h00) would work fine: things work when * excluding the maximum, i.e. < instead of <=. * * @param timestamp ISO:8601 timestamp * @return 1 nanosecond before timestamp. */ public static String minusEpsilon(String timestamp) { DateTime dt = isoFmt.parseDateTime(fix(timestamp)); DateTime dtEps = dt.minusMillis(1); return dtEps.toString(); }