2012-05-29 6 views
15

Ich bin wahrscheinlich eine offensichtliche Plattform Unterschied fehlt, dass ich zuvor werden sollte, aber ich dies, wenn ich versuche ein Zeitformat (python2.7) zu tun ...Python Zeit Formatierung anders in Windows

in Linux env:

>>> import time 
>>> time.strftime("%a, %d-%b-%Y %T GMT", time.gmtime()) 
'Tue, 29-May-2012 21:42:04 GMT' 

in Windows:

>>> import time 
>>> time.strftime("%a, %d-%b-%Y %T GMT", time.gmtime()) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: Invalid format string 

die Tupel aus time.gmtime() zurück erscheint gleich sein, so dass ich bin mir nicht ganz sicher, was ich ändern müssen.

+0

nur um sicherzustellen, dass Sie die gleichen Versionen von Python auf beiden Plattformen verwenden? – Levon

Antwort

13

Im Allgemeinen werden Sie feststellen, dass Python time.strftime() den gleichen Satz von Formatbezeichnern unterstützt wie die Plattform (oder die Plattform libc, um genauer zu sein), auf der sie ausgeführt wird. Jedoch ist nur eine Teilmenge davon tragbar. Eine Liste finden Sie unter http://docs.python.org/library/time.html. Um die Dokumente zu zitieren:

Zusätzliche Richtlinien können auf bestimmten Plattformen unterstützt werden, aber nur die aufgelisteten hier haben eine Bedeutung von ANSI standardisierte C.

In diesem Fall kann %T ersetzt werden durch %H:%M:%S.

+2

Hier ist eine Liste von Format Zeichen, die von der Windows-strftime unterstützt werden: http://msdn.microsoft.com/en-us/library/fe06s4ak.aspx – Joakim

0

Ich sehe nicht die %T Richtlinie Format in den Python documentation aufgeführt - nicht verfügbar sein muß,/für die Windows-Plattform implementiert (Ich habe versucht, sowohl mit Python v2.7.3 und 3.2.3 jetzt gerade)

0

gefunden dass ich dieses Problem hatte, weil MacOS unterstützt und ich es durch "%m/%d/%Y" ersetzen musste, um es plattformübergreifend zu machen. Im Allgemeinen scheint die Kombination von "einfachen" Formatzeichenfolgen wie %m sicherer zu sein als die Verwendung von "Aggregat" -Strings wie %T oder %D.