package quickml.supervised.crossValidation.utils;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import quickml.data.AttributesMap;
import quickml.data.instances.InstanceWithAttributesMap;
import java.text.*;
import java.util.Date;
/**
* Created by alexanderhawk on 6/22/14.
*/
public class SimpleDateFormatExtractor<T extends InstanceWithAttributesMap<?>> implements DateTimeExtractor<T> {
private static final Logger logger = LoggerFactory.getLogger(SimpleDateFormatExtractor.class);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateAttribute = "created_at";
public void setDateFormat(String dateFormatString) {
dateFormat = new SimpleDateFormat(dateFormatString);
}
public void setDateAttribute(String dateAttribute) {
this.dateAttribute = dateAttribute;
}
@Override
public DateTime extractDateTime(T instance) {
AttributesMap attributes = instance.getAttributes();
try {
Date currentTimeMillis = dateFormat.parse((String) attributes.get(dateAttribute));
return new DateTime(currentTimeMillis, DateTimeZone.UTC);
} catch (ParseException e) {
logger.error("Error parsing date", e);
}
return new DateTime();
}
}