Время Python для старения, часть 2: часовые пояса [дубликат]

Похоже, вам нужно добавить папку, содержащую исполняемый файл gurobi, в пути Windows и Anaconda.

В этом посте stackoverflow приведено пошаговое руководство о том, как это сделать: Как добавить папку в переменную среды `Path` в Windows 10 (со снимками экрана) [113 ]

См. Этот пост, чтобы добавить папку в путь к conda: Как добавить папку в путь поиска для заданной среды Anaconda?

22
задан Peter Mortensen 4 June 2017 в 11:15
поделиться

5 ответов

Новый в версии 2.6.

Для наивного объекта, %z и коды формата %Z заменяются пустыми строками.

похоже, что это реализовано только в> = 2.6, и я думаю, что необходимо вручную проанализировать его.

я не вижу другого решения, чем удалить данные часового пояса:

from datetime import timedelta,datetime
try:
    offset = int("Tue, 22 Jul 2008 08:17:41 +0300"[-5:])
except:
    print "Error"

delta = timedelta(hours = offset / 100)

fmt = "%a, %d %b %Y %H:%M:%S"
time = datetime.strptime("Tue, 22 Jul 2008 08:17:41 +0200"[:-6], fmt)
time -= delta
28
ответ дан Peter Mortensen 29 November 2019 в 03:25
поделиться

там реальный способ сделать это с strptime?

нет, но так как Ваш формат, кажется, дата RFC822-семейства, можно считать его намного более легко использование электронная почта библиотека вместо этого:

>>> import email.utils
>>> email.utils.parsedate_tz('Tue, 22 Jul 2008 08:17:41 +0200')
(2008, 7, 22, 8, 17, 41, 0, 1, 0, 7200)

(7200 = смещение часового пояса от UTC в секундах)

40
ответ дан Georg Schölly 29 November 2019 в 03:25
поделиться

Можно использовать dateutil библиотека, которая очень полезна:

from datetime import datetime
from dateutil.parser import parse

dt = parse("Tue, 22 Jul 2008 08:17:41 +0200")
## datetime.datetime(2008, 7, 22, 8, 17, 41, tzinfo=tzoffset(None, 7200)) <- dt

print dt
2008-07-22 08:17:41+02:00
18
ответ дан 3 revs, 3 users 92% 29 November 2019 в 03:25
поделиться

Насколько я знаю, strptime() не распознает числовые коды часового пояса. Если Вы знаете, что строка всегда собирается закончиться спецификацией часового пояса той формы (+ или - сопровождаемый 4 цифрами), просто обрубив его и парсингом, она вручную походит на совершенно разумную вещь сделать.

1
ответ дан David Z 29 November 2019 в 03:25
поделиться

Кажется, что %Z соответствует названиям часового пояса, не смещениям.

, Например, данный:

>>> format = '%a, %d %b %Y %H:%M:%S %Z'

я могу проанализировать:

>>> datetime.datetime.strptime('Tue, 22 Jul 2008 08:17:41 GMT', format)
datetime.datetime(2008, 7, 22, 8, 17, 41)

, Хотя кажется, что это ничего не делает с часовым поясом, просто замечая, что это существует и допустимо:

>>> datetime.datetime.strptime('Tue, 22 Jul 2008 08:17:41 NZDT', format)
datetime.datetime(2008, 7, 22, 8, 17, 41)

я предполагаю, желали ли Вы, Вы могли бы определить местоположение отображения смещений к именам, преобразовать Ваш вход и затем проанализировать его. Могло бы быть более просто просто усечь Ваш вход, все же.

0
ответ дан John Fouhy 29 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: