दिलचस्प पोस्ट
एक NxN ग्रिड में सभी पथ खोजने के लिए एल्गोरिथ्म मैं एक्सेप्शन लॉन्च प्रोफाइल को कार्यस्थानों में कैसे बचा सकता हूं? हैंडसेट के माध्यम से इंस्टॉल नहीं किए जाने वाले Android Wear ऐप जावास्क्रिप्ट – झंडा तक सच = रुको क्यों दोनों isset () और खाली चेक () MySql क्वेरी: प्रत्येक श्रेणी के लिए तालिका से शीर्ष 3 पंक्तियों का चयन करें आंशिक प्रकार अनुमान (Z3Py) समीकरण के लिए सभी समाधानों की जांच Mkannotation दृश्य में बटन कार्रवाई काम नहीं कर रही है? मोंगो डीबी में, आप अपने इंडेक्स से सरणी तत्व कैसे निकाल सकते हैं yii2 थीम एकीकरण Angular2 – त्रुटि अगर {{object.field}} मौजूद है, तो जांच नहीं है जावा में "प्रिंट" के बजाय "printf" का उपयोग करने का एक अच्छा कारण है? डिफ़ॉल्ट रूप HTTP विधि क्या है? xlwt का उपयोग करते हुए मौजूदा कार्यपुस्तिका को लिखना

पायथन में टाइम ज़ोन संक्षिप्त नाम के साथ दिनांक / समय स्ट्रिंग पार्स करना?

मैं "Sat, 11/01/09 8:00PM EST" जैसे टाइमस्टैम्प स्ट्रिंग को पायथन में पार्स करने की कोशिश कर रहा हूं, लेकिन मुझे संक्षिप्त समाधान खोजने में परेशानी हो रही है जो संक्षिप्त समय क्षेत्र को संभाल सकेगी I

मैं dateutil parse() फ़ंक्शन का उपयोग कर रहा हूं, लेकिन यह समयक्षेत्र को पार्स नहीं करता है क्या इसे करने का कोई आसान तरीका है?

Solutions Collecting From Web of "पायथन में टाइम ज़ोन संक्षिप्त नाम के साथ दिनांक / समय स्ट्रिंग पार्स करना?"

वह संभवत: काम नहीं करेगा क्योंकि ये संक्षेप अद्वितीय नहीं हैं विवरण के लिए यह पृष्ठ देखें। यदि आप इनपुट के एक ज्ञात सेट के साथ काम कर रहे हैं, तो आप मैन्युअल रूप से अपने आप को इसे संभाल कर सकते हैं।

dateutil 's parser.parse() कुंजीशब्द तर्क के रूप में स्वीकार करता है tzinfos एक शब्दकोश {'EST': -5*3600} (जो कि, जीएमटी को सेकंड में ऑफसेट करने के लिए क्षेत्र के नाम से मेल खाता है) तो मान लें कि हमारे पास ऐसा है, हम ऐसा कर सकते हैं:

 >>> import dateutil.parser as dp >>> s = 'Sat, 11/01/09 8:00PM' >>> for tz_code in ('PST','PDT','MST','MDT','CST','CDT','EST','EDT'): >>> dt = s+' '+tz_code >>> print dt, '=', dp.parse(dt, tzinfos=tzd) Sat, 11/01/09 8:00PM PST = 2009-11-01 20:00:00-08:00 Sat, 11/01/09 8:00PM PDT = 2009-11-01 20:00:00-07:00 Sat, 11/01/09 8:00PM MST = 2009-11-01 20:00:00-07:00 Sat, 11/01/09 8:00PM MDT = 2009-11-01 20:00:00-06:00 Sat, 11/01/09 8:00PM CST = 2009-11-01 20:00:00-06:00 Sat, 11/01/09 8:00PM CDT = 2009-11-01 20:00:00-05:00 Sat, 11/01/09 8:00PM EST = 2009-11-01 20:00:00-05:00 Sat, 11/01/09 8:00PM EDT = 2009-11-01 20:00:00-04:00 

tzinfos की सामग्री के बारे में, यहां बताया गया है कि कैसे मैं मेरा आबादी:

 tz_str = '''-12 Y -11 X NUT SST -10 W CKT HAST HST TAHT TKT -9 V AKST GAMT GIT HADT HNY -8 U AKDT CIST HAY HNP PST PT -7 T HAP HNR MST PDT -6 S CST EAST GALT HAR HNC MDT -5 R CDT COT EASST ECT EST ET HAC HNE PET -4 Q AST BOT CLT COST EDT FKT GYT HAE HNA PYT -3 P ADT ART BRT CLST FKST GFT HAA PMST PYST SRT UYT WGT -2 O BRST FNT PMDT UYST WGST -1 N AZOT CVT EGT 0 Z EGST GMT UTC WET WT 1 A CET DFT WAT WEDT WEST 2 B CAT CEDT CEST EET SAST WAST 3 C EAT EEDT EEST IDT MSK 4 D AMT AZT GET GST KUYT MSD MUT RET SAMT SCT 5 E AMST AQTT AZST HMT MAWT MVT PKT TFT TJT TMT UZT YEKT 6 F ALMT BIOT BTT IOT KGT NOVT OMST YEKST 7 G CXT DAVT HOVT ICT KRAT NOVST OMSST THA WIB 8 H ACT AWST BDT BNT CAST HKT IRKT KRAST MYT PHT SGT ULAT WITA WST 9 I AWDT IRKST JST KST PWT TLT WDT WIT YAKT 10 K AEST ChST PGT VLAT YAKST YAPT 11 L AEDT LHDT MAGT NCT PONT SBT VLAST VUT 12 M ANAST ANAT FJT GILT MAGST MHT NZST PETST PETT TVT WFT 13 FJST NZDT 11.5 NFT 10.5 ACDT LHST 9.5 ACST 6.5 CCT MMT 5.75 NPT 5.5 SLT 4.5 AFT IRDT 3.5 IRST -2.5 HAT NDT -3.5 HNT NST NT -4.5 HLV VET -9.5 MART MIT''' tzd = {} for tz_descr in map(str.split, tz_str.split('\n')): tz_offset = int(float(tz_descr[0]) * 3600) for tz_code in tz_descr[1:]: tzd[tz_code] = tz_offset 

ps। प्रति @ हांक समलैंगिक समय क्षेत्र नामकरण स्पष्ट रूप से परिभाषित नहीं है। मेरी तालिका बनाने के लिए मैंने http://www.timeanddate.com/library/abbreviations/timezones/ और http://en.wikipedia.org/wiki/List_of_time_zone_abbreviations का इस्तेमाल किया। मैंने प्रत्येक संघर्ष को देखा और लोकप्रिय (अधिक प्रयुक्त वाले) की ओर अस्पष्ट और लोकप्रिय नामों के बीच का हल संघर्ष किया। एक – आईएसटी – यह स्पष्ट कटौती के रूप में नहीं था (इसका मतलब भारतीय मानक समय , ईरान मानक समय , आयरिश मानक समय या इज़राइल स्टैंडर्ड टाइम ) है, इसलिए मैंने इसे तालिका से छोड़ दिया – आपको चुना जाना चाहिए कि क्या जोड़ा जाए इसके लिए आपके स्थान पर आधारित ओह – और मैंने किरिबाती को उनके बेतुका साथ छोड़ दिया "मुझे देखो मैं जीवाणु +13 और जीएमटी + 14 समय क्षेत्र" नए साल का जश्न मनाने के लिए सबसे पहले हूं।

आप पायटज मॉड्यूल की कोशिश कर सकते हैं: http://pytz.sourceforge.net/

पायथाज़ ओल्सन tz डेटाबेस को पायथन में लाता है यह लाइब्रेरी Python 2.3 या उच्चतर का उपयोग करके सटीक और क्रॉस प्लेटफ़ॉर्म समयक्षेत्र गणना प्रदान करती है। यह डेलाइट बचत के अंत में अवांछित समय के मुद्दे को हल करता है, जिसे आप पायथन पुस्तकालय संदर्भ (datetime.tzinfo) में पढ़ सकते हैं।

अमोस्ट सभी ओल्सन समयक्षेत्र समर्थित हैं।

तारीख पाइल में पार्स () फ़ंक्शन समय क्षेत्र को नियंत्रित नहीं कर सकता। मैं जिस चीज़ का उपयोग कर रहा हूं वह% ज़ेड फॉर्मेटर और समय है। मुझे नहीं पता कि यह समय क्षेत्र में अस्पष्टता के साथ कैसे काम करता है, लेकिन सीडीटी और सीएसटी के बीच अंतर को बताता है, जो मुझे जरूरी है

पृष्ठभूमि: मैं उन बैकअप छवियों को उन निर्देशिकाओं में संग्रहीत करता हूं जिनके नाम स्थानीय समय का उपयोग करते समय टाइमस्टैंप होते हैं, क्योंकि मेरे पास जीएमटी घड़ियां घर पर उपलब्ध नहीं होती हैं इसलिए मैं समय के लिए वास्तविक समय में डायरेक्टरी नामों को फिर से विश्लेषण करने के लिए समय का उपयोग करता हूं। आरटीप्टिम (डी, आर "% Y-% m-% dT% H:% M:% S_% Z")

मैं एक TZINFOS मैपिंग उत्पन्न करने के लिए pytz का उपयोग किया था:

 from datetime import datetime as dt import pytz from dateutil.tz import gettz from pytz import utc from dateutil import parser def gen_tzinfos(): for zone in pytz.common_timezones: try: tzdate = pytz.timezone(zone).localize(dt.utcnow(), is_dst=None) except pytz.NonExistentTimeError: pass else: tzinfo = gettz(zone) if tzinfo: yield tzdate.tzname(), tzinfo 

TZINFOS उपयोग

 >>> TZINFOS = dict(gen_tzinfos()) >>> TZINFOS {'+02': tzfile('/usr/share/zoneinfo/Antarctica/Troll'), '+03': tzfile('/usr/share/zoneinfo/Europe/Volgograd'), '+04': tzfile('Europe/Ulyanovsk'), '+05': tzfile('/usr/share/zoneinfo/Indian/Kerguelen'), ... 'WGST': tzfile('/usr/share/zoneinfo/America/Godthab'), 'WIB': tzfile('/usr/share/zoneinfo/Asia/Pontianak'), 'WIT': tzfile('/usr/share/zoneinfo/Asia/Jayapura'), 'WITA': tzfile('/usr/share/zoneinfo/Asia/Makassar'), 'WSDT': tzfile('/usr/share/zoneinfo/Pacific/Apia'), 'XJT': tzfile('/usr/share/zoneinfo/Asia/Urumqi')} 

parser उपयोग

 >>> date_str = 'Sat, 11/01/09 8:00PM EST' >>> tzdate = parser.parse(date_str, tzinfos=TZINFOS) >>> tzdate.astimezone(utc) datetime.datetime(2009, 11, 2, 1, 0, tzinfo=<UTC>) 

UTC रूपांतरण की आवश्यकता है क्योंकि प्रत्येक संक्षिप्त नाम के लिए कई समयक्षेत्र उपलब्ध हैं चूंकि TZINFOS एक TZINFOS है, उसके पास केवल प्रति संक्षिप्त नाम का आखिरी समयक्षेत्र है। और हो सकता है कि आप जिस एक को पूर्व रूपांतरण की उम्मीद कर रहे थे, उसे न मिले।

 >>> tzdate datetime.datetime(2009, 11, 1, 20, 0, tzinfo=tzfile('/usr/share/zoneinfo/America/Port-au-Prince'))