Používání python datetime.datetime.strptime na oknech s BST časovém pásmu

hlasů
2

Musím analyzovat mnoho různých data v mnoha různých formátech. Mám potíže s tímto a uvažoval, jestli anyopne mohl vysvětlit, proč;

Následující práce na linux systém:

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM BST','%a %d %b %Y %H:%M:%S %p %Z')

Ale běží pod okny vznáší

ValueError: časové údaje neodpovídá formátu

Nicméně, pokud se pokusím GMT není BST na oknech, to funguje dobře;

from datetime import datetime
datetime.strptime('Tue 23 Aug 2011 09:00:07 PM GMT','%a %d %b %Y %H:%M:%S %p %Z')

Je nějaký důvod, python nerozumí BST pásmo pod okny, ale to funguje pod Linuxem?

dík,

Matt.

Položena 24/08/2011 v 16:13
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
1

Podle mého názoru, analýze třípísmennou časové pásmo kód, jako je to není dobré praxe (pokud samozřejmě nemáte na výběr). Například, „EST“ je běžně používaný v USA pro UTC-4/5 a je také běžně používaný v Austrálii. Takže jakákoliv podpora „EST“ musí být tedy závislé na národním prostředí. To by mě nepřekvapilo, kdyby „BST“ byl podobně nejednoznačné.

Vřele doporučuji používat pytzmodul, ve kterém je britský civilní čas daný identifikátor řetězce Europe/Londona UTC se nazývá Etc/UTC. pytzAPI poskytne konzistentní výsledky bez ohledu na lokalitu uživatele nebo systému běží aplikace.

Pokud pracujete na UI, které musí být vázáno na národní prostředí, nebo rozebrat vstupy s formáty nelze změnit, pak zvažte použití slovníku zkratek do pytzčasového pásma objekty. Například: {'BST': 'Europe/London'}. Pak se vaše aplikace umí pracovat s daty a časy UTC jednotně, což se výrazně sníží pravděpodobnost výskytu chyb.

Odpovězeno 24/08/2011 v 16:50
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more