2012-05-29 9 views
15
में विभिन्न स्वरूपण

मैं शायद एक स्पष्ट मंच अंतर यह है कि मैं समायोजित किया जाना चाहिए याद कर रहा हूँ, लेकिन मैं इस जब एक समय स्वरूप (Python2.7) करने का प्रयास कर लिनक्स में हो रही है ...अजगर समय विंडोज

env:

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

tuples time.gmtime से लौटे() एक ही दिखाई देते हैं, तो मैं पूरी तरह से यकीन है कि मैं क्या बदलने की जरूरत नहीं है।

+0

बस यह सुनिश्चित करने के लिए, आप दोनों प्लेटफ़ॉर्म पर पायथन के सटीक संस्करणों का उपयोग कर रहे हैं? – Levon

उत्तर

13

सामान्य रूप से, आप पाएंगे कि पाइथन time.strftime() प्रारूप विनिर्देशकों के प्लेटफ़ॉर्म के समान सेट का समर्थन करता है (या प्लेटफॉर्म का libc अधिक विशिष्ट होने के लिए) यह चलता है। हालांकि, इनमें से केवल एक सबसेट पोर्टेबल है। एक सूची के लिए http://docs.python.org/library/time.html देखें। डॉक्स के शब्दों में:

अतिरिक्त निर्देशों कुछ प्लेटफ़ॉर्म पर समर्थन किया जा सकता है, लेकिन केवल यहाँ सूचीबद्ध एक अर्थ एएनएसआई सी

द्वारा मानकीकृत इस मामले में है, %T द्वारा बदला जा सकता है %H:%M:%S

+2

यहां प्रारूप वर्णों की एक सूची है जो Windows strftime द्वारा समर्थित हैं: http://msdn.microsoft.com/en-us/library/fe06s4ak.aspx – Joakim

0

मैं %T प्रारूप Python documentation में सूचीबद्ध निर्देश नहीं दिख रहा है - उपलब्ध नहीं होना चाहिए/विंडोज प्लेटफॉर्म के लिए लागू किया (मैं दोनों अजगर v2.7.3 और 3.2.3 के साथ अभी-अभी की कोशिश की)

0

मैंने पाया कि मुझे यह समस्या थी क्योंकि मैकोज़ "%D" का समर्थन करता है और इसे क्रॉस-प्लेटफॉर्म बनाने के लिए इसे "%m/%d/%Y" के साथ बदलना पड़ा। आम तौर पर, %m जैसे 'सरल' प्रारूप तारों को संयोजित करना %T या %D जैसे 'समेकित' तारों का उपयोग करने से सुरक्षित लगता है।