Вот два решения, использующие Pandas для преобразования дат, отформатированных как строки в объекты datetime.date.
import pandas as pd
dates = ['2015-12-25', '2015-12-26']
# 1) Use a list comprehension.
>>> [d.date() for d in pd.to_datetime(dates)]
[datetime.date(2015, 12, 25), datetime.date(2015, 12, 26)]
# 2) Convert the dates to a DatetimeIndex and extract the python dates.
>>> pd.DatetimeIndex(dates).date.tolist()
[datetime.date(2015, 12, 25), datetime.date(2015, 12, 26)]
Сроки
dates = pd.DatetimeIndex(start='2000-1-1', end='2010-1-1', freq='d').date.tolist()
>>> %timeit [d.date() for d in pd.to_datetime(dates)]
# 100 loops, best of 3: 3.11 ms per loop
>>> %timeit pd.DatetimeIndex(dates).date.tolist()
# 100 loops, best of 3: 6.85 ms per loop
И вот как преобразовать OP исходные даты-времени:
datetimes = ['Jun 1 2005 1:33PM', 'Aug 28 1999 12:00AM']
>>> pd.to_datetime(datetimes).to_pydatetime().tolist()
[datetime.datetime(2005, 6, 1, 13, 33),
datetime.datetime(1999, 8, 28, 0, 0)]
Существует много вариантов преобразования строк из Pandas Timestamps с помощью to_datetime
, поэтому проверьте docs , если вам что-то особенное.
Аналогично, метки времени имеют много свойств и методов , к которым можно получить доступ в дополнение к .date
Добавьте-lm к команде при вызове gcc:
gcc - стена-D_GNU_SOURCE blah.c-o вздор-lm
Это скажет компоновщику связываться с математической библиотекой. Включая math.h скажет компилятору, что математические функции как sqrt () существуют, но они определяются в отдельной библиотеке, которую компоновщик должен упаковать Вашим исполняемым файлом.
Поскольку FreeMemory указал, что библиотеку называют libm.a. В подобных Unix системах правило для именования библиотек является lib [вздор].a. Затем, если Вы хотите связать их со своим исполняемым файлом, Вы используете-l [вздор].
Необходимо связать математическую библиотеку явно. Добавить -lm
к флагам Вы являетесь передающими к gcc так, чтобы компоновщик знал для соединения libm.a