获取当前时区(Django)

2024-05-16 10:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前在我的设置中设置了TIME_ZONE = 'UTC'

在myDebitCardmodelexpiration_date字段中,我将日期存储为unixtime。例如,2020年10月1日晚上11:25(UTC)是1578698708

问题是:

假设expiration_date2010年1月15日00:00或(1263513600)

我想阻止用户在当前时间大于到期日时进行交易

但是,如果用户在LA(UTC前8小时),则当前时间将关闭8小时

问题:

我如何抓住用户的当前时间,无论他们在哪里(不仅仅是在洛杉矶)?因为我想抓住这一次,把它和他们的借记卡进行比较expiration_date


Tags: 用户zonedatetime时间交易lautc
2条回答

如果要确保代码使用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'])

相关问题 更多 >