我目前在设置中设置了TIME_ZONE = 'UTC'
。
在我的DebitCard
模型expiration_date
字段中,我将日期存储为unixtime。例如,01/10/2020 @ 11:25pm(UTC)是1578698708
。
问题是:
假设expiration_date
是2010年1月15日,00:00或(1263513600)。
我想在当前时间大于到期日期时阻止用户进行交易。
但是,如果用户在洛杉矶(UTC之前8个小时),current_time将关闭8个小时。
问题:
无论用户身在何处(不仅在洛杉矶,我该如何获取用户的当前时间?因为我想抓住这次,并将其与他们的借记卡expiration_date
如果要确保代码使用UTC时间进行比较,请使用datetime.datetime.utcnow()
例如,尝试在python或您的manage.py shell中运行以下命令:
import datetime
print(datetime.datetime.utcnow())
您可以将其输出与简单的datetime.datetime.now()
比较。如果您使用的计算机不在UTC中,则now()和utcnow()会有所不同。
尝试一下。
from django.contrib.gis.utils import GeoIP
from .utils import GeoTimeZoneReader
g = GeoIP() # get user ip
g.city(request.META['REMOTE_ADDR'])
g.city('74.125.79.147') # get city
to get timezone
data = GeoIP().city('74.125.79.147')
# Get Time Zone
db = GeoTimeZoneReader()
db.get_timezone(data['country_code'], data['region'])