package io.lumify.tikaTextExtractor;
import io.lumify.core.util.LumifyLogger;
import io.lumify.core.util.LumifyLoggerFactory;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class GenericDateExtractor {
private static final LumifyLogger LOGGER = LumifyLoggerFactory.getLogger(GenericDateExtractor.class);
private static List<String> DATE_FORMATS = new ArrayList<>();
static {
DATE_FORMATS.add("yyyy-MM-dd'T'HH:mm:ssX");
DATE_FORMATS.add("yyyy-MM-dd'T'HH:mm:ssz");
DATE_FORMATS.add("yyyy-MM-dd'T'HH:mm:ssZ");
DATE_FORMATS.add("EEE MMM dd HH:mm:ss z yyyy");
DATE_FORMATS.add("'D'':'yyyyMMddHHmmss");
}
public static Date extractSingleDate(String dateString) {
for (String dateFormat : DATE_FORMATS) {
try {
LOGGER.debug("parsing %s using %s", dateString, dateFormat);
Date result = new SimpleDateFormat(dateFormat).parse(dateString);
LOGGER.debug("parsing %s using %s succeeded %s", dateString, dateFormat, new SimpleDateFormat(DATE_FORMATS.get(0)).format(result));
return result;
} catch (ParseException e) {
LOGGER.debug("could not parse %s using %s", dateString, dateFormat, e);
}
}
return null;
}
}