Функции даты и времени на Python.
Импортируем модуль datetime:
from datetime import datetime
Текущее время UTC:
datetime.utcnow()
Текущее время сервера:
datetime.now()
Текущий час (минута, день и т.д.):
datetime.now().hour
Вычитаем из текущего времени определенное кол-во минут:
from datetime import datetime, timedelta
time_past = datetime.now() - timedelta(minutes=10)
time_past = datetime.now() - timedelta(minutes=10)
Из запросов SQLAlchemy:
from datetime import datetime, timedelta
query = db.session.query(Log).filter_by(name='title').order_by(db.desc(Log.created_on)).first()
query.created_on + timedelta(hours=5)
query = db.session.query(Log).filter_by(name='title').order_by(db.desc(Log.created_on)).first()
query.created_on + timedelta(hours=5)
на выходе будет:
2021-01-11 21:54:44.908938
Функция подсчета разницы во времени
Возвращает разницу между двумя датами в днях, часах, минутах, секундах или в часах и минутах:
def count_diff_from_dates(d1, d2, f):
diff = d1 - d2
if f == 'days':
return diff.days
if f == 'hours':
return diff.days * 24
if f == 'minutes':
return diff.days * 24 * 60
if f == 'seconds':
return diff.days * 24 * 3600 + diff.seconds
if f == 'full':
return {
'days': diff.days,
'hours': diff.seconds // 3600,
'minutes': (diff.seconds // 60) % 60,
}
diff = d1 - d2
if f == 'days':
return diff.days
if f == 'hours':
return diff.days * 24
if f == 'minutes':
return diff.days * 24 * 60
if f == 'seconds':
return diff.days * 24 * 3600 + diff.seconds
if f == 'full':
return {
'days': diff.days,
'hours': diff.seconds // 3600,
'minutes': (diff.seconds // 60) % 60,
}