2012-07-05 22 views
5

यूटीसी -8 के मेरे मूल समय क्षेत्र में datetime.datetime.now() आउटपुट का आउटपुट। मैं इसे यूटीसी के एक tzinfo के साथ एक उचित टाइमस्टैम्प में परिवर्तित करना चाहता हूं।नाम त्रुटि: नाम 'यूटीसी' परिभाषित नहीं किया गया है

from datetime import datetime, tzinfo 
x = datetime.now() 
x = x.replace(tzinfo=UTC) 

^आउटपुट NameError: नाम 'यूटीसी' परिभाषित नहीं है

x.replace(tzinfo=<UTC>) आउटपुट सिंटैक्स त्रुटि: अमान्य वाक्य रचना

x.replace(tzinfo='UTC') आउटपुट लेखन त्रुटि: tzinfo तर्क होना चाहिए कोई नहीं या एक tzinfo उपवर्ग की, न ही ' str '

मेरा उदाहरण पूरा करने के लिए उपयोग करने के लिए सही वाक्यविन्यास क्या है?

+1

पायथन के मानक पुस्तकालयों कक्षाएं tzinfo किसी भी शामिल नहीं हैं, यूटीसी सहित। दस्तावेज में एक बनाने के लिए निर्देश शामिल हैं। –

उत्तर

8

आपको pytz जैसी अतिरिक्त लाइब्रेरी का उपयोग करने की आवश्यकता होगी। पायथन का datetime मॉड्यूल में यूटीसी समेत tzinfo कक्षाएं शामिल नहीं हैं, और निश्चित रूप से आपके स्थानीय टाइमज़ोन नहीं हैं।

+1

+1 ये बैटरी शामिल नहीं हैं :( –

+1

धन्यवाद! उन उत्सुक लोगों के लिए, 'x.replace (tzinfo = pytz.utc) + timedelta (घंटे = 8) का उपयोग करके समाप्त हो गया। –

3

यदि सब आप देख रहे हैं समय UTC में है, datetime उस के लिए अंतर्निहित है:

x = datetime.utcnow() 

दुर्भाग्य से यह किसी भी tzinfo शामिल नहीं है, लेकिन यह आप UTC समय देता है।

आप tzinfo आप यह कर सकते हैं की जरूरत है वैकल्पिक रूप से अगर:

from datetime import datetime 
import pytz 
x = datetime.now(tz=pytz.timezone('UTC')) 

तुम भी समय-क्षेत्रों की एक सूची में रुचि हो सकती: Python - Pytz - List of Timezones?

संबंधित मुद्दे