使用pytz,我能够获得如下所示的时区列表:
>>> from pytz import country_timezones
>>> print(' '.join(country_timezones('ch')))
Europe/Zurich
>>> print(' '.join(country_timezones('CH')))
Europe/Zurich
Run Code Online (Sandbox Code Playgroud)
鉴于我从用户那里获得了Country和City字段,我该如何确定城市的时区?
我正在尝试在 Flask 应用程序中将 UTC 时间转换为适当的本地时间。我想知道是否可以检测用户的时区并动态设置它。
到目前为止,这是我的代码,仅适用于US/Pacific时区中的每个人(datetimefilter从这个 SO 问题中提取)
from flask import Flask, render_template_string
import datetime
import pytz
app = Flask(__name__)
@app.template_filter('datetimefilter')
def datetimefilter(value, format='%b %d %I:%M %p'):
tz = pytz.timezone('US/Pacific') # timezone you want to convert to from UTC (America/Los_Angeles)
utc = pytz.timezone('UTC')
value = utc.localize(value, is_dst=None).astimezone(pytz.utc)
local_dt = value.astimezone(tz)
return local_dt.strftime(format)
@app.route('/')
def index():
dt = datetime.datetime.utcnow()
return render_template_string(
'''
<h4>UTC --> Local Time</h4>
Datetime right now is:
<p>{{ dt | …Run Code Online (Sandbox Code Playgroud)