Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2006 14:13:01

Cyxapeff
От:
Зарегистрирован: 2006-08-17
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с временем и датой

Есть даты вида YYYY-MM-DD HH:MM:SS.
Нужно сравнивать несколько таких дат. Первое что пришло в голову - перевести в число секунд с начала эпохи и дальше всё просто.
Но в стандартной библиотеке нашёл только функцию mktime, которой требуется массив аж из 9 элементов. Как сравнивать даты? Или перевести таки в секунды…



Офлайн

#2 Окт. 27, 2006 14:39:12

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с временем и датой

>>> 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
>>>



Офлайн

#3 Окт. 27, 2006 14:40:59

koder
От:
Зарегистрирован: 2006-09-29
Сообщения: 95
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с временем и датой

Преобразуй в питоновский массив
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
секунд с начала эпохи
надо писать так:
секунд с начала Эпохи :)



Офлайн

#4 Окт. 27, 2006 14:43:02

koder
От:
Зарегистрирован: 2006-09-29
Сообщения: 95
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с временем и датой

У slivlen вариант получше - когда я писал его еще не было



Офлайн

#5 Окт. 27, 2006 14:43:22

Cyxapeff
От:
Зарегистрирован: 2006-08-17
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

Работа с временем и датой

Спасибо.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version