首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更好的python日期时间显示?

更好的python日期时间显示?
EN

Stack Overflow用户
提问于 2011-02-08 14:31:21
回答 1查看 679关注 0票数 0

我正在使用babel和pytz来获取时区。然而,对于大多数美国人来说,它在下拉框中映射到的帮助不是很大:

"America/New_York“显示”东部时间“,"America/Nipigon”也显示“东部时间”。

有什么方法可以完成这个转换来添加城市信息吗?其他时区似乎还可以,比如“亚洲/雅加达”转换为“印度尼西亚(雅加达)时间”。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-02-08 16:44:09

适用于我的Babel 0.9.5和pytz 2010b。

py.tz

代码语言:javascript
运行
复制
#!/usr/bin/env python

import pytz
import babel.dates

tz = pytz.timezone('America/New_York')
print babel.dates.get_timezone_location(tz)

输出

代码语言:javascript
运行
复制
$ python tz.py 
United States (New York) Time

你是如何运行它的?什么版本?

如果您坚持使用现有的版本,那么为什么不只使用Continent/City条目呢?

这是你的起点。它同时确定大陆和城市,因此您可以随心所欲地格式化它。

tzs.py

代码语言:javascript
运行
复制
#!/usr/bin/env python

import pytz
import babel.dates
import re

country_timezones = {}
for (country, tzlist) in pytz.country_timezones.iteritems():
    country_name = pytz.country_names[country]
    cities = []
    for timezone in tzlist:
        # remove continent
        city = re.sub(r'^[^/]*/', r'', timezone)
        # Argentina has an extra "Argentina/" on my system (pytz 2010b)
        city = re.sub(country_name + '/', '', city)
        # Indiana and North Dakota have different rules by country
        # change Indiana/Location to Location, Indiana
        city = re.sub(r'^([^/]*)/(.*)', r'\2, \1', city)
        # change underscores to spaces
        city = re.sub(r'_', r' ', city)
        cities.append(city)  
    country_timezones[country_name] = cities

for country in sorted(country_timezones):
    print country
    for city in sorted(country_timezones[country]):
        print "\t%s" % (city)

输出

代码语言:javascript
运行
复制
Aaland Islands
        Mariehamn
Afghanistan
        Kabul
...
Indonesia
        Jakarta
        Jayapura
        Makassar
        Pontianak
...
United States
        Adak
        Anchorage
        Boise
        Center, North Dakota
        Chicago
        Denver
        Detroit
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4930233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档