यह आपके सवाल का सीधा जवाब (जो बहुत अच्छी तरह से पहले से ही उत्तर दिया गया था) नहीं है। हालांकि, कई बार मुझे मौलिक सिद्धांत पर कई बार काट दिया गया था, मैं इतना तनाव नहीं डाल सकता कि यह आपके समय पर बारीकी से देखने के लिए आपको व्यवहार करेगा। संरचना_टाइम वस्तु प्रदान कर रही है, बनाम अन्य क्षेत्रों में क्या हो सकता है।
मान लें कि आपके पास एक समय है। स्ट्रक्चर_टाइम ऑब्जेक्ट, और कुछ अन्य दिनांक/समय स्ट्रिंग, दोनों की तुलना करें, और सुनिश्चित करें कि आप डेटा खो नहीं रहे हैं और अनजाने में एक निष्क्रिय डेटाटाइम ऑब्जेक्ट बना रहे हैं, जब आप अन्यथा कर सकते हैं।
उदाहरण के लिए, उत्कृष्ट feedparser मॉड्यूल एक "प्रकाशित" क्षेत्र वापस आ जाएगी और उसकी "published_parsed" क्षेत्र में एक time.struct_time वस्तु वापस आ सकते हैं:
time.struct_time(tm_year=2013, tm_mon=9, tm_mday=9, tm_hour=23, tm_min=57, tm_sec=42, tm_wday=0, tm_yday=252, tm_isdst=0)
अब ध्यान दें कि आप वास्तव में के साथ "प्रकाशित " खेत।
Mon, 09 Sep 2013 19:57:42 -0400
Stallman दाढ़ी द्वारा! टाइमज़ोन जानकारी!
from dateutil import parser
dt = parser.parse(entry["published"])
print "published", entry["published"])
print "dt", dt
print "utcoffset", dt.utcoffset()
print "tzinfo", dt.tzinfo
print "dst", dt.dst()
जो हमें देता है:
published Mon, 09 Sep 2013 19:57:42 -0400
dt 2013-09-09 19:57:42-04:00
utcoffset -1 day, 20:00:00
tzinfo tzoffset(None, -14400)
dst 0:00:00
एक तो इस्तेमाल कर सकते हैं timezone-
इस मामले में, आलसी आदमी समयक्षेत्र जानकारी रखने के लिए उत्कृष्ट dateutil मॉड्यूल का उपयोग करने के लिए चाहते हो सकता है यूटीसी को हर समय सामान्य करने के लिए जागरूक डेटाटाइम ऑब्जेक्ट या जो कुछ भी आपको लगता है वह कमाल है।
@ नाडिया वह क्यों है? आपका सरल लगता है और कम मॉड्यूल की आवश्यकता है। –
ध्यान दें कि यह 1 9 00 से पहले विफल रहता है। आप आधुनिक लोगों को इस सीमा को कभी याद नहीं करते! – mlissner
क्या यह 'tm_isdst' डेटा खो देगा? मुझे ऐसा लगता है, परिणामी डेटाटाइम ऑब्जेक्ट '.dst() 'पर' none' को वापस करने की सीमा तक निष्पक्ष रहता है, भले ही 'struct.tm_isdst'' 1' हो। – n611x007