@Override
long parse(CharSequence sequence) {
if (sequence.length() != LENGTH) {
return next.parse(sequence);
}
int year = getNumericValue(sequence, POS_YEAR, 4);
int month = getNumericValue(sequence, POS_MONTH, 2);
int day = getNumericValue(sequence, POS_DAY, 2);
int hour = getNumericValue(sequence, POS_HOUR, 2);
int minute = getNumericValue(sequence, POS_MINUTE, 2);
int second = getNumericValue(sequence, POS_SECOND, 2);
if (year < 0 || month < 0 || day < 0 || hour < 0 || minute < 0 || second < 0) {
return next.parse(sequence);
}
int date = DateUtil.getDayFromDate(year, month, day);
int secondsInDay = DateUtil.getSecondFromTime(hour, minute, second);
return (long) date * 86400 + secondsInDay;
}
}