Почему pytz.country_timezones('cn') в системе centos имеют другой результат?
Два компьютера устанавливают Centos 6.5, ядро 3.10.44, имеют разные результаты. один результат [u'Asia/Shanghai', u'Asia/Urumqi']
а другой ['Asia/Shanghai', 'Asia/Harbin', 'Asia/Chongqing', 'Asia/Urumqi', 'Asia/Kashgar']
,
Есть ли конфиг, который делает первый результат таким же, как второй результат?
У меня есть следующий код Python:
def get_date():
date = datetime.utcnow()
from_zone = pytz.timezone("UTC")
to_zone = pytz.timezone("Asia/Urumqi")
date = from_zone.localize(date)
date = date.astimezone(to_zone)
return date
def get_curr_time_stamp():
date = get_date()
stamp = time.mktime(date.timetuple())
return stamp
cur_time = get_curr_time_stamp()
print "1", time.strftime("%Y %m %d %H:%M:%S", time.localtime(time.time()))
print "2", time.strftime("%Y %m %d %H:%M:%S", time.localtime(cur_time))
При использовании этого кода для получения времени, результат одного компьютера (имеет 2 результата):
1 2016 04 20 08:53:18
2 2016 04 20 06:53:18
а другой (имеет 5 результатов):
1 2016 04 20 08:53:18
2 2016 04 20 08:53:18
Не знаю почему?
1 ответ
Возможно, у вас просто устаревшая версия pytz в системе, возвращающая пять часовых поясов (или, возможно, в обеих системах). Вы можете найти последние выпуски здесь. Важно следить за обновлениями часовых поясов, так как различные правительства мира часто меняют свои часовые пояса.
Как и большинство систем, pytz получает свои данные из базы данных tz. Пять часовых поясов для Китая были сокращены до двух в версии 2014f (соответствует pytz 2014.6). Из примечаний к выпуску:
Пять зон Китая были упрощены до двух, так как различия в остальных трех странах после 1970 года кажутся мнимыми. Зоны Азия / Харбин, Азия / Чунцин и Азия / Кашгар были удалены; ссылки обратной совместимости все еще работают, хотя и с различным поведением для отметок времени до мая 1980 года. Переход 1980 года из Азии / Урумчи в UTC+8 был удален, так что теперь он находится в UTC+6, а не в UTC+8. (Спасибо Лютеру Ма и Алоису Трейндлю; Трейндл прислал полезные переводы двух работ Го Циншена.)
Кроме того, вы можете прочитать статью Википедии " Время в Китае", в которой объясняется, что Asia/Urumqui
вход для "Урумчи время", который неофициально используется в некоторых частях региона Синьцзян. Эта зона не признана правительством Китая и считается политически значимой проблемой. Таким образом, многие системы предпочитают пропускать часовой пояс Урумчи, несмотря на то, что он указан в базе данных tz.