Python datetime.today() Показывает разное время в разных программах python
У меня есть 2 разных файла python, views.py
в django и test.py
. Я использую test.py
, чтобы написать определенную функцию и проверить, получаю ли я желаемый результат, и если да, я копирую этот код в views.py
в моем проекте django.
Сегодня я писал функцию для расчета временных интервалов в 15 минут и заполнения списка.
Когда я пытался сделать print('Today: ',datetime.today())
в test.py
, она выдавала правильный результат, а в views.py
Вот вывод в обоих случаях
test.py
: Today: 2022-01-13 20:28:45.613094
views.py
: Today: 2022-01-13 14:58:25.850835
Примечание: В моем views.py есть и другие функции, использующие библиотеки datetime, но я уверен, что они не мешают друг другу
Вот код, который я использую для создания списка времени с интервалом в 15 минут:
def datetime_range(start, end, delta):
current = start
while current <= end:
yield current
current += delta
def create():
print('Today: ',datetime.today()) #This is where the problem occurs!
a=datetime.strftime(datetime.now(),'%I:%M')
h=a[0:2]
dts = [dt.strftime('%I:%M') for dt in
datetime_range(datetime(2022, 1, 1,int(h)), datetime(2022, 1, 1,9),
timedelta(minutes=15))]
new=[]
for d in dts:
if datetime.strptime(d,'%I:%M') > datetime.strptime(a,'%I:%M'):
new.append(d)
return new
Ваше смещение в 5 с половиной часов между двумя результатами указывает на то, что вы, вероятно, находитесь в Индии, и вы обнаружили проблему с часовыми поясами. Попробуйте вместо этого использовать datetime.utcnow()
и продолжить с этого места.
https://docs.python.org/3/library/datetime.html#datetime.datetime.utcnow
если вы хотите, вы можете посмотреть этот пост о часовом поясе в настройках
https://quick-adviser.com/how-do-i-change-timezone-in-django-unchained/