Python datetime.datetime.strptime windows BST időzónát

szavazat
2

Meg kell elemezni sok különböző időpontokban különböző formátumokban. Én gondjai a következő, és azon tűnődtem anyopne megmagyarázhatja, hogy miért;

Az alábbi munkák Linux rendszeren:

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

De Windows alatt futó vet fel

ValueError: idő adatok nem egyeznek a méret

Azonban, ha megpróbálom GMT nem BST ablakokra, ez jól működik;

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

Van valami oka python nem érti a BST időzónát windows alatt, de ez jól működik Linux alatt?

Kösz,

Matt.

A kérdést 24/08/2011 16:13
a forrás felhasználó
Más nyelveken...                            


1 válasz

szavazat
1

Véleményem elemzés hárombetűs időzóna kód, mint ez nem egy jó gyakorlat (kivéve persze ha nincs más választása). Például a „EST” gyakran használják az USA-UTC-4/5 és az is gyakran használják Ausztráliában. Tehát semmilyen támogatást „EST” ezért függ locale. Nem lepne meg, ha „BST” Hasonlóan egyértelmű.

Én nagyon ajánlom a pytzmodul, amelyben a brit polgári idő áll a string azonosító Europe/Londonés az UTC hívják Etc/UTC. Az pytzAPI konzisztens eredményt ad, függetlenül a területi, a felhasználó vagy a rendszer fut az alkalmazás.

Ha dolgozik egy UI, hogy ki kell kötni, hogy locale, vagy elemzésekor bemenet formátumokat nem tudja megváltoztatni, akkor fontolják meg egy szótár rövidítések pytzidőzónát tárgyakat. Például: {'BST': 'Europe/London'}. Ezután az alkalmazás képes együttműködni UTC dátumot és időpontot egységesen, ami nagymértékben csökkenti a hibák lehetőségét.

Válaszolt 24/08/2011 16:50
a forrás felhasználó

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