List of usage examples for org.joda.time.format DateTimeFormat forPattern
public static DateTimeFormatter forPattern(String pattern)
From source file:com.addthis.hydra.data.util.DateUtil.java
License:Apache License
public static DateTimeFormatter getFormatter(String format) { return DateTimeFormat.forPattern(format); }
From source file:com.addthis.hydra.data.util.TimeField.java
License:Apache License
@Override public void postDecode() { if (format.equals("native")) { format = "unixmillis:10"; }/*w ww . j av a2 s . c o m*/ if (format.startsWith("unixmillis")) { if (format.indexOf(":") > 0) { radix = Integer.parseInt(format.substring(format.indexOf(":") + 1)); } else { radix = 10; } } else { formatter = DateTimeFormat.forPattern(format); if (timeZone != null) { formatter = formatter.withZone(DateTimeZone.forID(timeZone)); } } }
From source file:com.addthis.hydra.task.map.DataPurgeServiceImpl.java
License:Apache License
@Override public boolean purgeData(DataPurgeConfig dataPurgeConfig, DateTime currentTime) { if (!validatePurgeParameters(dataPurgeConfig, currentTime)) { return false; }//from www . j a va 2 s . co m DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(dataPurgeConfig.getDatePathFormat()); DateTime oldestDataAllowed; if (dataPurgeConfig.getMaxAgeInDays() > 0) { oldestDataAllowed = currentTime.plusDays(-dataPurgeConfig.getMaxAgeInDays()); } else { oldestDataAllowed = currentTime.plusHours(-dataPurgeConfig.getMaxAgeInHours()); } logger.debug("Oldest data allowed {} , current time is {}", new Object[] { oldestDataAllowed, currentTime }); for (String directoryPrefix : dataPurgeConfig.getDirectoryPrefix()) { for (File prefixDirectory : expandPrefix(directoryPrefix)) { List<File> subdirectories = getSubdirectoryList(prefixDirectory, null); for (File subdirectory : subdirectories) { logger.trace("Considering directory {} for purge", subdirectory); safeDelete(prefixDirectory.getPath(), dateTimeFormatter, oldestDataAllowed, subdirectory, dataPurgeConfig.isFileBasedPurge(), dataPurgeConfig.getDateStartIndex(), dataPurgeConfig.getDateStringLength()); } if (dataPurgeConfig.getCleanEmptyParents()) { for (File directory : subdirectories) { if (directory.list() != null && directory.list().length == 0) { try { FileUtils.deleteDirectory(directory); } catch (IOException e) { logger.warn("Failed to delete empty directory {}", directory); } } } } } } return true; }
From source file:com.addthis.hydra.task.output.tree.PathPrune.java
License:Apache License
@JsonCreator public PathPrune(@Time(TimeUnit.MILLISECONDS) @JsonProperty("ttl") long ttl, @Nullable @JsonProperty("nameFormat") String nameFormat, @Nullable @JsonProperty("timezone") String timezone, @Nullable @JsonProperty("treePath") String treePath, @JsonProperty("timePropKey") String timePropKey, @JsonProperty("ignoreMissingTimeProp") boolean ignoreMissingTimeProp, @JsonProperty("allLeaves") boolean allLeaves, @JsonProperty("relativeDown") int relativeDown, @JsonProperty("preempt") boolean preempt, @JsonProperty("excludes") ImmutableSet<String> excludes) { this.ttl = ttl; this.timePropKey = timePropKey; this.ignoreMissingTimeProp = ignoreMissingTimeProp; this.allLeaves = allLeaves; this.relativeDown = relativeDown; this.preempt = preempt; this.excludes = excludes; if (nameFormat != null && timezone != null) { this.nameFormat = DateTimeFormat.forPattern(nameFormat).withZone(DateTimeZone.forID(timezone)); } else if (nameFormat != null) { this.nameFormat = DateTimeFormat.forPattern(nameFormat); } else {/*from w w w .j av a 2 s . c o m*/ this.nameFormat = null; } if ((treePath != null) && (relativeDown != 0)) { throw new IllegalStateException("cannot use both treePath and relativeDown parameters"); } if (treePath != null) { this.treePath = ImmutableList.copyOf(SLASH_SPLITTER.splitToList(treePath)); } else { this.treePath = null; } }
From source file:com.addthis.hydra.task.source.AbstractPersistentStreamSource.java
License:Apache License
/** * called by data source wrapper and performs common initialization * steps.//from ww w .ja v a 2 s. c o m */ public boolean init(File stateDir, Integer[] shards) throws Exception { if (log.isDebugEnabled()) { log.debug("SSM: " + CodecJSON.encodeString(this)); } setStateDir(stateDir); if (log.isTraceEnabled()) { log.trace("shards :: " + Strings.join(shards, " :: ")); } /* expand files list */ HashSet<String> matches = new HashSet<>(); if (log.isTraceEnabled()) { log.trace("files.1 :: " + Strings.join(files, " -- ")); } /* expand mods */ for (String file : files) { for (Integer shard : shards) { matches.add(file.replace("{{mod}}", Strings.padleft(shard.toString(), 3, Strings.pad0))); } } files = matches.toArray(new String[matches.size()]); /* expand {US,DE,FR} bash-style string list */ for (String file : files) { int io1 = file.indexOf("{"); int io2 = file.indexOf("}"); if (io1 >= 0 && io2 > io1) { String left = file.substring(0, io1); String right = file.substring(io2 + 1); for (String tok : Strings.splitArray(file.substring(io1 + 1, io2), ",")) { // ignore reserved strings for time based expansion if (!TIME_CONSTANTS.contains(tok)) { String expand = left.concat(tok).concat(right); matches.add(expand); if (log.isTraceEnabled()) { log.trace("expand " + file + " to " + expand); } } } } } files = matches.toArray(new String[matches.size()]); if (log.isTraceEnabled()) { log.trace("files.2 :: " + matches); } if (log.isTraceEnabled()) { log.trace("files.3 :: " + Strings.join(files, " -- ")); } /* calculate start/end dates if required */ formatter = DateTimeFormat.forPattern(dateFormat); if (autoResume && autoResumeFile.exists() && autoResumeFile.canRead() && autoResumeFile.length() > 0) { try { JSONObject jo = new JSONObject( Bytes.toString(Bytes.readFully(new FileInputStream(autoResumeFile)))); String resumeDate = jo.optString("lastDate"); if (resumeDate != null) { log.warn("auto resume from " + jo); startDate = resumeDate; } } catch (Exception ex) { log.warn("corrupted autoResume file: " + autoResumeFile + " ... " + ex); } } if (startDate == null) { log.warn("No startDate provided."); return false; } DateTime start = parseDateTime(startDate); if (endDate == null) { endDate = NOW_PREFIX + NOW_POSTFIX; log.warn("End Date not provided, using current time: " + endDate + " as end date for job"); } DateTime end = parseDateTime(endDate); /* populate date list from start/end */ fillDateList(start, end); log.info("[init] " + start + " to " + end + " = " + dates.size() + " time units"); return doInit(); }
From source file:com.aegeus.utils.TimeUtils.java
License:Apache License
/** * Returns formatted date string by date and format string * * @param date date object//from w w w .j a v a 2 s .co m * @param format date format * @return formatted date */ public static String getFormat(Date date, String format) { return DateTimeFormat.forPattern(format).print(date.getTime()); }
From source file:com.alliander.osgp.adapter.protocol.oslp.application.mapping.OslpMapper.java
License:Open Source License
@Override protected void configure(final MapperFactory factory) { factory.getConverterFactory().registerConverter(new IntegerToByteStringConverter()); factory.getConverterFactory().registerConverter(new ConfigurationToOslpSetConfigurationRequestConverter()); factory.getConverterFactory().registerConverter(new OslpGetConfigurationResponseToConfigurationConverter()); factory.getConverterFactory().registerConverter(new DaliConfigurationToOslpDaliConfigurationConverter()); factory.getConverterFactory().registerConverter(new RelayConfigurationToOslpRelayConfigurationConverter()); factory.getConverterFactory().registerConverter(new LightTypeConverter()); factory.getConverterFactory().registerConverter(new LinkTypeConverter()); factory.getConverterFactory().registerConverter(new MeterTypeConverter()); factory.getConverterFactory().registerConverter(new RelayTypeConverter()); factory.getConverterFactory().registerConverter(new RelayDataConverter()); factory.getConverterFactory().registerConverter(new PowerUsageDataConverter()); factory.getConverterFactory().registerConverter(new HistoryTermTypeConverter()); // Converter from String to DateTime using the Oslp time format. factory.getConverterFactory().registerConverter(new CustomConverter<String, DateTime>() { @Override//from w w w .ja va2s.c o m public DateTime convert(final String source, final Type<? extends DateTime> destinationType) { return DateTimeFormat.forPattern(TIME_FORMAT).withZoneUTC().parseDateTime(source); } }); // Converter from DateTime to String using the Oslp time format. factory.getConverterFactory().registerConverter(new CustomConverter<DateTime, String>() { @Override public String convert(final DateTime source, final Type<? extends String> destinationType) { return source.toString(DateTimeFormat.forPattern(TIME_FORMAT).withZoneUTC()); } }); }
From source file:com.alliander.osgp.adapter.protocol.oslp.elster.application.mapping.OslpMapper.java
License:Open Source License
@Override protected void configure(final MapperFactory factory) { factory.getConverterFactory().registerConverter(new IntegerToByteStringConverter()); factory.getConverterFactory().registerConverter(new ConfigurationToOslpSetConfigurationRequestConverter()); factory.getConverterFactory().registerConverter(new OslpGetConfigurationResponseToConfigurationConverter()); factory.getConverterFactory().registerConverter(new RelayMatrixConverter()); factory.getConverterFactory().registerConverter(new DaliConfigurationToOslpDaliConfigurationConverter()); factory.getConverterFactory().registerConverter(new RelayConfigurationToOslpRelayConfigurationConverter()); factory.getConverterFactory().registerConverter(new LightTypeConverter()); factory.getConverterFactory().registerConverter(new LinkTypeConverter()); factory.getConverterFactory().registerConverter(new MeterTypeConverter()); factory.getConverterFactory().registerConverter(new RelayTypeConverter()); factory.getConverterFactory().registerConverter(new RelayDataConverter()); factory.getConverterFactory().registerConverter(new PowerUsageDataConverter()); factory.getConverterFactory().registerConverter(new HistoryTermTypeConverter()); // Converter from String to DateTime using the Oslp time format. factory.getConverterFactory().registerConverter(new CustomConverter<String, DateTime>() { @Override// w ww. j av a2 s. c o m public DateTime convert(final String source, final Type<? extends DateTime> destinationType) { return DateTimeFormat.forPattern(TIME_FORMAT).withZoneUTC().parseDateTime(source); } }); // Converter from DateTime to String using the Oslp time format. factory.getConverterFactory().registerConverter(new CustomConverter<DateTime, String>() { @Override public String convert(final DateTime source, final Type<? extends String> destinationType) { return source.toString(DateTimeFormat.forPattern(TIME_FORMAT).withZoneUTC()); } }); }
From source file:com.alliander.osgp.webdevicesimulator.service.OslpChannelHandler.java
License:Open Source License
private static Message createGetPowerUsageHistoryWithDatesResponse( final GetPowerUsageHistoryRequest powerUsageHistoryRequest) throws ParseException { final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyyMMddHHmmss").withZoneUTC(); // 20140405 220000 final DateTime now = new DateTime(); final DateTime dateTimeFrom = formatter .parseDateTime(powerUsageHistoryRequest.getTimePeriod().getStartTime()); DateTime dateTimeUntil = formatter.parseDateTime(powerUsageHistoryRequest.getTimePeriod().getEndTime()); final int itemsPerPage = 2; final int intervalMinutes = powerUsageHistoryRequest.getTermType() == HistoryTermType.Short ? 60 : 1440; final int usagePerItem = powerUsageHistoryRequest.getTermType() == HistoryTermType.Short ? 2400 : 57600; // If from in the future, return emtpy list final List<PowerUsageData> powerUsageDataList = new ArrayList<PowerUsageData>(); if (dateTimeFrom.isAfter(now)) { return createUsageMessage(1, itemsPerPage, 1, powerUsageDataList); }/*from w w w . jav a2 s.c o m*/ // Ensure until date is not in future dateTimeUntil = correctUsageUntilDate(dateTimeUntil, powerUsageHistoryRequest.getTermType()); final int queryInterval = Minutes.minutesBetween(dateTimeFrom, dateTimeUntil).getMinutes(); final int totalNumberOfItems = queryInterval / intervalMinutes; final int numberOfPages = (int) Math.ceil((double) totalNumberOfItems / (double) itemsPerPage); // Determine page number int currentPageNumber; if (powerUsageHistoryRequest.getPage() == 0) { currentPageNumber = 1; } else { currentPageNumber = powerUsageHistoryRequest.getPage(); } int page = 1; int itemsToSkip = 0; while (currentPageNumber != page) { itemsToSkip += itemsPerPage; page++; } // Advance time to correct page starting point, last to first (like real // device) DateTime pageStartTime = dateTimeUntil.minusMinutes(intervalMinutes * itemsToSkip) .minusMinutes(intervalMinutes); final int itemsOnPage = Math.min(Math.abs(totalNumberOfItems - itemsToSkip), itemsPerPage); // Advance usage to start of page int totalUsage = (totalNumberOfItems * usagePerItem) - (usagePerItem * itemsToSkip); // Fill page with items for (int i = 0; i < itemsOnPage; i++) { final int range = (100) + 1; final int randomCumulativeMinutes = (int) (Math.random() * range) + 100; // Increase the meter final double random = usagePerItem - (usagePerItem / 50d * Math.random()); totalUsage -= random; // Add power usage item to response final PowerUsageData powerUsageData = PowerUsageData.newBuilder() .setRecordTime(pageStartTime.toString(formatter)).setMeterType(MeterType.P1) .setTotalConsumedEnergy(totalUsage).setActualConsumedPower((int) random) .setPsldData(PsldData.newBuilder().setTotalLightingHours((int) random * 3)) .setSsldData(SsldData.newBuilder().setActualCurrent1(10).setActualCurrent2(20) .setActualCurrent3(30).setActualPower1(10).setActualPower2(20).setActualPower3(30) .setAveragePowerFactor1(10).setAveragePowerFactor2(20).setAveragePowerFactor3(30) .addRelayData(Oslp.RelayData.newBuilder() .setIndex(ByteString.copyFrom(new byte[] { 1 })) .setTotalLightingMinutes(INITIAL_BURNING_MINUTES - randomCumulativeMinutes)) .addRelayData(Oslp.RelayData.newBuilder() .setIndex(ByteString.copyFrom(new byte[] { 2 })) .setTotalLightingMinutes(INITIAL_BURNING_MINUTES - randomCumulativeMinutes)) .addRelayData(Oslp.RelayData.newBuilder() .setIndex(ByteString.copyFrom(new byte[] { 3 })) .setTotalLightingMinutes(INITIAL_BURNING_MINUTES - randomCumulativeMinutes)) .addRelayData(Oslp.RelayData.newBuilder() .setIndex(ByteString.copyFrom(new byte[] { 4 })) .setTotalLightingMinutes(INITIAL_BURNING_MINUTES - randomCumulativeMinutes))) .build(); powerUsageDataList.add(powerUsageData); pageStartTime = pageStartTime.minusMinutes(intervalMinutes); INITIAL_BURNING_MINUTES -= CUMALATIVE_BURNING_MINUTES; } return createUsageMessage(currentPageNumber, itemsPerPage, numberOfPages, powerUsageDataList); }
From source file:com.almende.arum.EventPusher.java
License:Apache License
/** * Load events.// w w w .j a v a 2 s . c o m * * @param filename * the filename * @return the integer * @throws IOException * Signals that an I/O exception has occurred. */ @Access(AccessType.PUBLIC) public Integer loadEvents(@Name("filename") String filename) throws IOException { final BufferedReader reader = new BufferedReader(new FileReader(filename)); final DateTimeFormatter formatter = DateTimeFormat.forPattern("MM/dd/yyyy HH:mm:ss"); events.clear(); String line = reader.readLine(); while (line != null) { if (line.isEmpty()) { continue; } final ObjectNode event = JOM.createObjectNode(); final String[] elements = line.split(","); if (!elements[0].equals("jobId")) { event.put("jobId", elements[0].trim()); event.put("time", DateTime.parse(elements[1], formatter).toString()); event.put("performedBy", elements[2].trim()); event.put("type", elements[3].trim()); event.put("assignment", elements[4].trim()); event.put("productId", elements[5].trim()); event.put("operation", elements[6].trim()); if (elements.length > 7) { final String[] requirements = elements[7].split(";"); final ArrayNode reqs = JOM.createArrayNode(); for (String req : requirements) { req = req.replaceAll("\"", ""); if (req.contains("(")) { final ObjectNode r = JOM.createObjectNode(); r.put("type", req.substring(0, req.indexOf("(") - 1).trim()); r.put("agentId", req.substring(req.indexOf("(") + 1, req.indexOf(")")).trim()); reqs.add(r); } else { final ObjectNode r = JOM.createObjectNode(); r.put("type", req.trim()); reqs.add(r); } } event.set("prerequisites", reqs); } events.add(event); } line = reader.readLine(); } reader.close(); return events.size(); }