u"""
    >>> PSEUDO_NOW = NOW.replace(hour=17, minute=27)

    >>> process_datetime(u'25 ноября 1991 в 07:07')
    '1991-11-25 07:07'

    >>> process_datetime(u'1 января 1970 в 00:00')
    '1970-01-01 00:00'

    >>> process_datetime(u'8 мая в 17:27')  #doctest: +ELLIPSIS
    '201...-05-08 17:27'

    >>> process_datetime(u'сегодня в 17:27') == DATETIME_FORMAT.format(PSEUDO_NOW)
    True

    >>> process_datetime(u'вчера в 17:27') == DATETIME_FORMAT.format(PSEUDO_NOW - timedelta(days=1))
    True

def process_datetime(value):
    u"""
    >>> PSEUDO_NOW = NOW.replace(hour=17, minute=27)

    >>> process_datetime(u'25 ноября 1991 в 07:07')
    '1991-11-25 07:07'

    >>> process_datetime(u'1 января 1970 в 00:00')
    '1970-01-01 00:00'

    >>> process_datetime(u'8 мая в 17:27')  #doctest: +ELLIPSIS
    '201...-05-08 17:27'

    >>> process_datetime(u'сегодня в 17:27') == DATETIME_FORMAT.format(PSEUDO_NOW)
    True

    >>> process_datetime(u'вчера в 17:27') == DATETIME_FORMAT.format(PSEUDO_NOW - timedelta(days=1))
    True
    """
    value = value.strip()
    m = DATETIME_COMMON.match(value)
    if m:
        dt = m.groupdict()
        if not dt['year']:
            dt['year'] = NOW.year
        dt['month'] = MONTH_CODE[dt['month']]
        _convert_values_to_int(dt)
        return DATETIME_FORMAT.format(datetime(**dt))

    m = DATETIME_YESTERDAY.match(value)
    if m:
        dt = m.groupdict()
        _convert_values_to_int(dt)
        return DATETIME_FORMAT.format(NOW.replace(**dt) - timedelta(1))

    m = DATETIME_TODAY.match(value)
    if m:
        dt = m.groupdict()
        _convert_values_to_int(dt)
        return DATETIME_FORMAT.format(NOW.replace(**dt))
    return '?'