2012-12-11 6 views
5

जैसे:Convert datetime उद्देश्य यह है कि समय क्षेत्र में सेकंड इपोक

>>> print dt
2012-12-04 19:00:00-05:00

आप देख सकते हैं, मैं कैसे मैं युग को यह datetime वस्तु में बदल सकते हैं इस datetime वस्तु है जीएमटी -5 में सेकंड।

मैं यह कैसे कर सकता हूं?

+4

एपोक सेकंड टाइमज़ोन द्वारा मौजूद नहीं हैं। परिभाषा के अनुसार वे यूटीसी हैं और दुनिया भर में समान हैं। प्रत्येक टाइमज़ोन स्थानीय समय के लिए फ्लाई पर बदल जाता है। –

+0

@jimmcnamara यह कुंजी है। बेहद सहायक, महोदय। –

उत्तर

6

आपका डेटाटाइम एक बेवकूफ डेटाटाइम नहीं है, यह उस टाइमज़ोन के बारे में जानता है जिसमें यह है (आपके प्रिंट स्टेटस जो -5 है)। तो आप बस इपोक

>>> import time, pytz 
>>> utc = pytz.timezone('UTC') 
>>> utc_dt = utc.normalize(dt.astimezone(utc)) 
>>> time.mktime(utc_dt.timetuple()) 
1355270789.0 # This is just to show the format it outputs 

यूटीसी के रूप में सेट करने के लिए इससे पहले कि आप परिवर्तित जरूरत डीटी वस्तु एक अनुभवहीन datetime वस्तु थी, तो आप समय की बचत करते हुए खोजने दिन के उजाले में पालन करने के लिए समय क्षेत्रों के साथ काम करने की जरूरत होगी जीएमटी 0 के बीच सही घंटे। उदाहरण के लिए, सर्दियों में रोमानिया, इसमें +2 और गर्मियों में +3 है।

अपने -5 उदाहरण के लिए, न्यूयॉर्क करना होगा:

>>> import time,pytz 
>>> timezone = pytz.timezone('America/New_York') 
>>> local_dt = timezone.localize(dt) 

अब आप एक गैर अनुभवहीन datetime है और जैसे मैं पहले समझाया आप युग समय मिल सकता है। मज़े करें

+1

संभावित रूप से "-05: 00" पहले से दी गई तारीख और समय क्षेत्र के लिए उचित ऑफसेट को कोड करता है, तो पीछे की ओर काम करने की परेशानी क्यों करें? –

+0

धन्यवाद, मैं प्रिंट में -5 चूक गया। मैंने जवाब देने के लिए उत्तर को अनुकूलित किया कि कैसे गैर-बेवकूफ डेटाटाइम से कनवर्ट करना है। – mihaicc

+0

यह समाधान मेरे लिए बेहतर काम करता है। http://stackoverflow.com/a/11111177/969984 –

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