2016-08-14 3 views
2

У меня есть большой список дат, которые DateTime объекты, такие как, например,Преобразование списка объектов даты и времени в список количества дней, прошедших с определенной даты

[datetime.datetime(2016,8,14),datetime.datetime(2016,8,13),datetime.datetime(2016,8,12),....etc.] 

Вместо даты и времени объектов даты, что я want вместо этого - список числовых целочисленных значений с даты 1/1/1900. Я определил 1/1/1900 в качестве даты основания и в петле для ниже, я вычислил дни между датой в списке после этой даты основания:

baseDate = datetime(1900,1,1) 
numericalDates = [] 
for i in enumerate(dates): 
    a=i[1]-baseDate 
    numericalDates.append(a) 

print(numericalDates) 

Однако, когда я печатаю это из , я получаю datetime.timedelta объекты вместо

[datetime.timedelta(42592), datetime.timedelta(42591), datetime.timedelta(42590),...etc.] 

Любые идеи о том, как я могу преобразовать это правильный путь?

+0

Вы должны использовать 30/12/1989 для точного эквивалента в Excel по пути: HTTP: // StackOverflow. com/q/9574793/2285236 (см. комментарии в принятом ответе). – ayhan

ответ

3

timedelta объекты имеют days атрибут, так что вы можете просто добавить, что в качестве int:

numericalDates.append(a.days) 

приведет с numericalDates быть [42594, 42593, 42592].

Обратите внимание, что вы можете также упростить код немного, используя список понимание:

numericalDates = [(d - baseDate).days for d in dates] 
+0

не могу поверить, что я не заметил этого раньше, спасибо – bwrr

 Смежные вопросы

  • Нет связанных вопросов^_^