Я хочу получить часовой пояс по умолчанию (PST) моей системы с Python. Каков наилучший способ сделать это? Я хотел бы избежать разветвления другого процесса.Получить информацию о часовом поясе системы в Python?
ответ
Проверьте модуль Python Time.
from time import gmtime, strftime
print strftime("%z", gmtime())
Pacific Standard Time
Это должно работать:
import time
time.tzname
возвращает кортеж из двух строк: во-первых, имя локального часового пояса не-DST, то вторая является имя локального часового пояса DST.
Чтобы воспользоваться этим, вы можете использовать 'time.tzname [time.daylight]', чтобы получить имя текущий часовой пояс, учитывающий переход на летнее время. –
Опять же, «time.daylight» не указывает, что DST активен. Он просто указывает, соблюдается ли DST по часовому поясу. Вы ищете «time.localtime(). Tm_isdst». – marr75
Просто для добавления пользователей Windows значения для часового пояса были определены в 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Time Zones \' – swdev
Если вы предпочитаете смещение UTC над строками:
time.timezone/-(60*60)
Это неправильно рассчитает, когда (/ if) действует DST. – marr75
Дает UTC смещения, как в ответе ThomasH, но принимает сбережения дневного света во внимание.
>>> import time
>>> offset = time.timezone if (time.localtime().tm_isdst == 0) else time.altzone
>>> offset/60/60 * -1
-9
Значение time.timezone
или time.altzone
в секундах к западу от UTC (с районами к востоку от UTC получить отрицательное значение). Это противоположно тому, как нам это на самом деле нравится, следовательно, * -1.
time.localtime().tm_isdst
будет равен нулю, если летнее сбережение в настоящее время не действует (хотя это может быть неверно, если область недавно изменила свой закон о дневном свете).
EDIT: marr75 является правильным, я отредактировал ответ соответственно.
Чтобы быть в безопасности, я считаю, что проверка смещения должна быть отменена (altzone, если dst = 1 еще часовой пояс). Если статус DST как-то неизвестен, 'tm_isdst' будет' -1', а текущий код по умолчанию будет 'altzone' в этом случае. Для регионов, которые не используют DST, это значение никогда не является правильным, поэтому «часовой пояс», вероятно, должен быть резервным. (Я не уверен, что '-1' на самом деле возможен вывод из' localtime', хотя) – nmclean
[все решения на базе altzone, основанные на часовом поясе могут не работать в некоторых случаях) (http://bugs.python.org/issue1647654) – jfs
Недопустимые фрагменты кода для расчета смещения, см. http://bugs.python.org/issue7229.
Правильный способ справиться с этим:
def local_time_offset(t=None):
"""Return offset of local zone from GMT, either at present or at time t."""
# python2.3 localtime() can't take None
if t is None:
t = time.time()
if time.localtime(t).tm_isdst and time.daylight:
return -time.altzone
else:
return -time.timezone
Это, по всей вероятности, не точный вопрос, что ОП спросил, но есть два неправильных сниппеты на странице и время ошибок сосут выследить и исправить.
1. Если вы знаете 'tm_isdst'; вам не нужно проверять «дневной свет» 2. [все решения 'altzone',' timezone' могут не работать в некоторых случаях] (http://bugs.python.org/issue1647654) – jfs
- 1. Файловые системы хранят информацию о часовом поясе?
- 2. Получить информацию о часовом поясе в Outlook
- 3. Как получить информацию о часовом поясе
- 4. Report Builder 2.0: Как получить правильную информацию о часовом поясе
- 5. Откуда вы получаете информацию о часовом поясе?
- 6. Получить другую информацию о часовом поясе, локально, используя VBScript
- 7. Невозможно получить информацию о часовом поясе при использовании mod_plsql?
- 8. Получить информацию о часовом поясе клиента на сервере
- 9. Как получить информацию о часовом поясе для страны?
- 10. Как вы получаете информацию о произвольном часовом поясе в Windows?
- 11. Webservice - Как передать информацию о часовом поясе в элементе datetime
- 12. Как синхронизировать информацию о часовом поясе в семействах сайтов SharePoint?
- 13. . Информация о часовом поясе .NET
- 14. Смутно о часовом поясе, dateutil.parser.parse?
- 15. Как добавить информацию о часовом поясе в DateTime запроса SOAP
- 16. Postgresql хранит информацию о часовом поясе в TIMESTAMP WITH TIMEZONE?
- 17. Почему Azure теряет информацию о часовом поясе в полях DateTimeOffset?
- 18. Как сохранить информацию о часовом поясе в базе данных?
- 19. EWS GetUserAvailabilityRequest из javascript - Как установить информацию о часовом поясе
- 20. Java не дает правильную информацию о часовом поясе
- 21. Информация о часовом поясе в узле js
- 22. Сохраняет ли Sqlite DATETIME информацию о часовом поясе?
- 23. Информация о часовом поясе Отсутствует в pytz?
- 24. Как обновить информацию о часовом поясе для OpenJDK?
- 25. Почему datetime.datetime.utcnow() не содержит информацию о часовом поясе?
- 26. Удалить информацию о часовом поясе от объекта datetime
- 27. Информация о часовом поясе в pandas
- 28. std :: mktime и информация о часовом поясе
- 29. вопрос о часовом поясе в postgresql + java?
- 30. вопрос о часовом поясе в Intellij IDEA
Мы смотрим на разные документы или это ''% Z''? – SilentGhost
@ SilentGhost: «% z» и «% z» точно совпадают в Python. – ahawker
есть, но ** верхний корпус ** 'Z' и ** нижний регистр **' z' нет. – SilentGhost