Найти - Пользователи
Полная версия: Работа с временем и датой
Начало » Python для экспертов » Работа с временем и датой
1
Cyxapeff
Есть даты вида YYYY-MM-DD HH:MM:SS.
Нужно сравнивать несколько таких дат. Первое что пришло в голову - перевести в число секунд с начала эпохи и дальше всё просто.
Но в стандартной библиотеке нашёл только функцию mktime, которой требуется массив аж из 9 элементов. Как сравнивать даты? Или перевести таки в секунды…
slivlen
>>> 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
>>>
koder
Преобразуй в питоновский массив
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
секунд с начала эпохи
надо писать так:
секунд с начала Эпохи :)
koder
У slivlen вариант получше - когда я писал его еще не было
Cyxapeff
Спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB