It seems using pandas Timestamp is the fastest
import pandas as pd N = 1000l = ['Jun 1 2005 1:33PM'] * Nlist(pd.to_datetime(l, format=format))%timeit _ = list(pd.to_datetime(l, format=format))1.58 ms ± 21.6 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
Other solutions
from datetime import datetime%timeit _ = list(map(lambda x: datetime.strptime(x, format), l))9.41 ms ± 95.7 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)from dateutil.parser import parse%timeit _ = list(map(lambda x: parse(x), l))73.8 ms ± 1.14 ms per loop (mean ± std. dev. of 7 runs, 10 loops each)
If the string is ISO8601 string please use csio8601
import ciso8601l = ['2014-01-09'] * N%timeit _ = list(map(lambda x: ciso8601.parse_datetime(x), l))186 µs ± 4.13 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)