Met behulp van python datetime.datetime.strptime op ramen met BST tijdzone

stemmen
2

Ik moet veel verschillende data in verschillende formats te ontleden. Ik heb problemen met het volgende en vroeg zich af of anyopne zou kunnen verklaren waarom;

De volgende werken op een Linux-systeem:

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

Maar draait onder Windows het verhoogt

ValueError: time data komt niet overeen formaat

Echter, als ik probeer GMT niet BST op de ramen, het werkt prima;

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

Is er een reden python niet begrijpt de BST tijdzone onder Windows, maar het werkt prima onder Linux?

bedankt,

Mat.

De vraag is gesteld op 24/08/2011 om 16:13
bron van user
In andere talen...                            


1 antwoorden

stemmen
1

In mijn mening, het ontleden van een drie-letter tijdzone code als dit is niet een goede praktijk (tenzij je natuurlijk hebben geen keuze). Bijvoorbeeld, "EST" wordt vaak gebruikt in de VS voor UTC-4/5 en wordt ook vaak gebruikt in Australië. Dus elke vorm van steun voor "EST" moet dus afhankelijk van locale zijn. Het zou me niet verbazen als "BST" was ook dubbelzinnig.

Ik raad het gebruik van de pytzmodule waarin de Britse burgerlijke tijd wordt gegeven de string identifier Europe/Londonen UTC wordt genoemd Etc/UTC. De pytzAPI zal consistente resultaten, ongeacht de locatie van de gebruiker of het systeem draaien van de applicatie te geven.

Als u werkt op een gebruikersinterface die moet worden gekoppeld aan locale of parsing ingangen met formats je niet kunt veranderen, overweeg dan het gebruik van een woordenboek van afkortingen pytztijdzone objecten. Bijvoorbeeld: {'BST': 'Europe/London'}. Dan is uw applicatie kan werken met UTC datums en tijden uniform, die sterk de kans op fouten te verminderen.

antwoordde op 24/08/2011 om 16:50
bron van user

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