2012-05-16 10 views
13

है, मेरे पास एचएच: एमएम :: एसएस.एननो_सेकंड्स (उदा। 01: 02: 03.123456789) प्रारूप में कुछ लॉग फाइलें हैं। मैं अजगर में एक डाटाटाइम बनाना चाहता हूं ताकि मैं उस समय गणित को अच्छी तरह से कर सकूं (उदाहरण के लिए समय अंतर लेना)। strptime माइक्रोसॉन्ड% f का उपयोग कर अच्छी तरह से काम करता है। पाइथन डेटाटाइम और समय मॉड्यूल वास्तव में नैनोसेकंद का समर्थन नहीं करते हैं?पार्सिंग डेटाटाइम स्ट्रिंग्स जिनमें नैनोसेकंड

+0

संभावित डुप्लिकेट [सेकंड में पॉज़िक्स/यूनिक्स समय और पायथन में नैनोसेकंड प्राप्त करें?] (Http://stackoverflow.com/questions/2394485/get-posix-unix-time-in-seconds-and-nanoseconds-in -पीथॉन) –

+0

@ माइकपेनिंगटन यह प्रश्न नैनोसेकंड के साथ घड़ी का समय प्राप्त करने, उन्हें पार्स करने और वास्तविक घड़ी से स्वतंत्र गणित करने के साथ सौदा करता है। – Dougal

+0

@ डौगल, सवाल बहुत प्रासंगिक है क्योंकि वे बताते हैं कि नैनोसेकंद समय परिशुद्धता के लिए मंच समर्थन की आवश्यकता होती है, और अधिकांश नहीं। उस प्रश्न में, नैनोसेकंड की स्ट्रिंग स्वरूपण पर भी –

उत्तर

13

आप from the source देख सकते हैं कि डेटाटाइम ऑब्जेक्ट्स microseconds से अधिक कुछ भी ठीक नहीं करते हैं। टिप्पणियों में माइक पेनिंगटन द्वारा इंगित किया गया है, ऐसा इसलिए है क्योंकि actual hardware clocks aren't nearly that precise। विकिपीडिया का कहना है कि HPET में आवृत्ति "कम से कम 10 मेगाहट्र्ज" है, जिसका अर्थ है प्रति 100 नैनोसेकंड एक टिक।

यदि आप पिछले तीन अंकों को फेंकने के साथ जी सकते हैं (जो संभवतः बहुत सार्थक नहीं हैं), तो आप दशमलव स्ट्रिंग के बाद केवल छः अंकों के लिए इनपुट स्ट्रिंग को स्लाइस करके और %f के साथ पार्सिंग करके इसे पार्स कर सकते हैं। अन्यथा, ऐसा लगता है कि आपको खुद को घटाव को लागू करना होगा।

+0

धन्यवाद। मुझे यही संदेह है। – user1332148

+9

सिस्टम घड़ी समय का एकमात्र स्रोत नहीं है जो किसी के साथ डेटाटाइम और टाइमडेल्टा का उपयोग करना चाह सकता है। यह कष्टप्रद है (मायोपिक मूर्खता पर सीमा) कि वे उपयोग की बजाय nsecs का उपयोग करके लागू नहीं किए गए हैं। – travc

+3

@travc: खुली सीपीथन समस्या है: [डेटाटाइम मॉड्यूल के पास नैनोसेकंड के लिए कोई समर्थन नहीं है] (https://bugs.python.org/issue15443) – jfs

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