/ / strptime com fuso horário de 3 caracteres e AM / PM - python, strptime

strptime com fuso horário de 3 caracteres e AM / PM - python, strptime

Baseado na documentação para strptime, Acredito que meu código esteja correto para um fuso horário de 3 caracteres e AM / PM.

Por que o Python 2.5 e o Python 3.6 não gostam do formato de tempo da cadeia de caracteres que estou usando?

import datetime
ts = datetime.datetime.strptime(
"11/30/2017 01:08:05 PM CST",
"%m/%d/%Y %I:%M:%S %p %z"
)

ou

import datetime
ts = datetime.datetime.strptime(
"11/30/2017 01:08:05 PM CST",
"%m/%d/%Y %I:%M:%S %p %Z"
)

Quando executar ambos retornam:

ValueError: time data "11/30/2017 01:08:05 PM CST" does
not match format "%m/%d/%Y %I:%M:%S %p %Z"

Respostas:

0 para resposta № 1

Fusos horários simbólicos, como CST não são analisados ​​por strptime. Além disso, eles são relativamente sem sentido. É CST:

  • Horário Padrão Central; ou
  • Horário Padrão da China; ou
  • Hora Padrão de Cuba.

Para lidar com a sua situação, você deve considerar o uso dateutil.parsere dando-lhe um tzinfo para os fusos horários que você deseja suportar.