def _convert_f(arg): arg = com._ensure_object(arg) try: result = lib.array_to_datetime(arg, raise_=errors == 'raise', utc=utc, dayfirst=dayfirst) if com.is_datetime64_dtype(result) and box: result = DatetimeIndex(result, tz='utc' if utc else None) return result except ValueError, e: try: values, tz = lib.datetime_to_datetime64(arg) return DatetimeIndex._simple_new(values, None, tz=tz) except (ValueError, TypeError): raise e
elif isinstance(arg, datetime): return arg elif isinstance(arg, Series): values = _convert_f(arg.values) return Series(values, index=arg.index, name=arg.name) elif isinstance(arg, (np.ndarray, list)): if isinstance(arg, list): arg = np.array(arg, dtype='O') if com.is_datetime64_dtype(arg): if box and not isinstance(arg, DatetimeIndex): try: return DatetimeIndex(arg, tz='utc' if utc else None) except ValueError, e: try: values, tz = lib.datetime_to_datetime64(arg) return DatetimeIndex._simple_new(values, None, tz=tz) except (ValueError, TypeError): raise e return arg try: return _convert_f(arg) except ValueError: raise return arg try: if not arg: return arg return parse(arg, dayfirst=dayfirst)