Я должен знать текущее время в CDT, когда мой скрипт Python запущен. Однако этот скрипт будет запущен в нескольких различных часовых поясах, таким образом, простое смещение не будет работать. Мне только нужно решение для Linux, но кросс-платформенное решение было бы идеально.
Вы можете использовать Time.gmime ()
, чтобы получить время GMT (UTC) с любого компьютера, независимо от часового пояса, то вы можете применить ваше смещение.
Pytz или DateutiL.tz - это хитрость здесь. В основном это что-то вроде этого:
>>> from pytz import timezone
>>> mytz = timezone('Europe/Paris')
>>> yourtz = timezone('US/Eastern')
>>> from datetime import datetime
>>> now = datetime.now(mytz)
>>> alsonow = now.astimezone(yourtz)
Трудность фактически заключается в том, чтобы выяснить, какой часовой пояс вы находитесь. DateutiL.tz лучше при этом.
>>> from dateutil.tz import tzlocal, gettz
>>> mytz = tzlocal()
>>> yourtz = gettz('US/Eastern')
Если вы хотите, чтобы все нитущие смягчающие детали о том, почему времязоны злые, они здесь:
http://regebro.wordpress.com/2007/12/18/python-andtime-time-zones-fighting- Heake Beast /
http://regebro.wordpress.com/2008/05/10/python-andtime-zones-part-2-the-beast-ruturns/
http: // regebro. WordPress.com/2008/05/13/thanks-for-the-testing-hels-help-conclusions/
Простое смещение будет работать, вам просто нужно компенсировать от UTC.
Использование DateTime Вы можете получить текущее время UTC (GMT) и использовать объекты DateTime:
DateTime.dateTime.utcnow () - дает время на UTC
dateTime.dateTime. . wnow () - дает время на локальном компьютере
, чтобы получить время CT из любой системы, необходимой вам, чтобы узнать смещение времени CT из UTC. Затем учитывать дневной сберегательный код времени функцию, чтобы получить текущее смещение.
>>> import datetime
>>> utc = datetime.datetime.utcnow()
>>> current_ct_offset = get_current_ct_offset()
>>> ct_datetime = utc + datetime.timedelta(hours=current_ct_offset)
Я мог бы с видом на что-то упустить, но если ваш только обеспокоен одним часовым появлением, и вы не выполняете обращение с именем TZ, это довольно быстро.