我有一个Django应用程序和一个硬编码时区列表。我知道pytz
可以用来获取所有时区的列表。但它并没有显示他们与格林尼治时间的时差。请建议如何得到这样一个列表。你知道吗
TIMEZONE_CHOICES = (
("<DstTzInfo 'Africa/Abidjan' LMT-1 day, 23:44:00 STD>", "<DstTzInfo 'Africa/Abidjan' LMT-1 day, 23:44:00 STD>"),
("<DstTzInfo 'Africa/Accra' LMT-1 day, 23:59:00 STD>", "<DstTzInfo 'Africa/Accra' LMT-1 day, 23:59:00 STD>"),
("<DstTzInfo 'Africa/Addis_Ababa' LMT+2:27:00 STD>", "<DstTzInfo 'Africa/Addis_Ababa' LMT+2:27:00 STD>"),
("<DstTzInfo 'Africa/Algiers' LMT+0:12:00 STD>", "<DstTzInfo 'Africa/Algiers' LMT+0:12:00 STD>"),
("<DstTzInfo 'Africa/Asmara' LMT+2:27:00 STD>", "<DstTzInfo 'Africa/Asmara' LMT+2:27:00 STD>"),...)
假设与UTC的时差是GMT的可接受的替代方案(UTC和GMT几乎相同,但并不完全相同),则可以从
pytz.timezone
对象获取时区偏移量和相关信息。你知道吗对于具有多个偏移量的时区(由于夏时制、历史变化等),可以从
_tzinfos
属性获取相关的时区和偏移量。对于具有单个偏移量的时区,可以从_utcoffset
属性获取偏移量。你知道吗下面的示例创建一个dict,其中
pytz.all_timezones
中的每个时区都是一个键,值是包含相关区域和偏移量信息的元组列表。你知道吗如果您喜欢将每个区域的信息连接到一个字符串中的列表(如您的示例),则可以按如下所示进行修改。你知道吗
根据您关于删除具有偏移量的时区的评论,这些偏移量不在输出的四分之一小时间隔内,您可能希望删除历史日期(通常是19世纪和20世纪初的日期)中包含的各种时区,其中大多数作为某种“平均时间”变量(如“LMT”)包含“当地平均时间”。一个强力的方法就是过滤掉所有以“MT”结尾的时区缩写,除了“GMT”。在当前的使用中,可能还有一些我不知道的例外情况,但也应该以与“GMT”相同的方式来处理。你知道吗
相关问题 更多 >
编程相关推荐