Форум сайта python.su
Есть даты вида YYYY-MM-DD HH:MM:SS.
Нужно сравнивать несколько таких дат. Первое что пришло в голову - перевести в число секунд с начала эпохи и дальше всё просто.
Но в стандартной библиотеке нашёл только функцию mktime, которой требуется массив аж из 9 элементов. Как сравнивать даты? Или перевести таки в секунды…
Офлайн
>>> import time
>>> import datetime
>>> ts1=time.strptime(“2006:10:1 06:05:07”,“%Y:%m:%d %H:%M:%S”)
>>> ts2=time.strptime(“2007:10:1 06:05:07”,“%Y:%m:%d %H:%M:%S”)
>>> dt1=datetime.datetime(*ts1)
>>> dt2=datetime.datetime(*ts2)
>>> dt1 == dt2
False
>>> dt1 > dt2
False
>>> dt1 < dt2
True
>>>
Офлайн
Преобразуй в питоновский массив
Python сравнивает массивы в лексикографическом порядке т.ч.
если больший массив означает большую дату.
st1 = “YYYY-MM-DD HH:MM:SS”
st2 = “YYYY2-MM2-DD2 HH2:MM2:SS2”
def d2a(st):
dt,tm = st.split(' ‘)
y,m,d = map(int,dt.split(“-”))
h,mi = map(int,tm.split(’:'))
return
if d2a(st1) > d2a(st2):
…….
P.S.
Cyxapeffнадо писать так:
секунд с начала эпохи
Офлайн
У slivlen вариант получше - когда я писал его еще не было
Офлайн
Спасибо.
Офлайн