'Validate the parse result and convert it into a time tuple
@param parse_result: the parse result
@return: a timetuple (y, m, d, hh, mm, ss)'

def _validate(self, parse_result):

    calendar = self.calendar
    now = current.request.utcnow
    today = (now.year, now.month, now.day, 0, 0, 0)
    (cyear, cmonth, cday) = calendar._cdate(today)[:3]
    year = parse_result.get('year4')
    if (year is None):
        year = parse_result.get('year2')
        if (year is None):
            year = cyear
        else:
            current_century = (int((cyear / 100)) * 100)
            year = (current_century + year)
    month = (parse_result.get('month') or cmonth)
    day = (parse_result.get('day') or 1)
    (year, month, day) = calendar.from_jd(calendar.to_jd(year, month, day))
    hour = parse_result.get('hour24')
    if (hour is None):
        hour = parse_result.get('hour12')
        if (hour is None):
            hour = 0
        else:
            if (hour == 12):
                hour = 0
            if (parse_result.get('ampm', 'AM') == 'PM'):
                hour += 12
    minute = (parse_result.get('minute') or 0)
    second = (parse_result.get('second') or 0)
    return (year, month, day, hour, minute, second)
