2011-11-23 12 views
8

पायथन के datetime वर्ग एक टाइमस्टैम्प से एक datetime वस्तु बनाने के लिए एक fromtimestamp विधि है, लेकिन इसके विपरीत के लिए एक totimestamp विधि प्रदान नहीं करता है ... मुझे पता है कि time.mktime(x.timetuple()) की तरह कुछ के साथ आप datetime वस्तु में बदल सकते हैं कर रहा हूँ एक टाइमस्टैंप के लिए, लेकिन यह मेरे लिए अनावश्यक जटिल लग रहा है, इसलिए मुझे उत्सुकता है कि totimestamp विधि क्यों नहीं है?पाइथन डेटाटाइम क्लास में 'सेटिमस्टैम्प' विधि क्यों है, लेकिन 'टोटीमेस्टैम्प' विधि नहीं है?

+0

भी देखें http://stackoverflow.com/questions/8022161/python-converting-from-datetime -डेटाइम-टू-टाइम-टाइम –

+0

@ स्वेन: मेरा प्रश्न इसे बदलने के तरीकों के बारे में नहीं पूछ रहा है, लेकिन 'डेटाटाइम' मॉड्यूल में ऐसी विधि की अनुपस्थिति के कारण को जानना चाहता है ... –

+1

मैंने नहीं किया यह नहीं कहता कि यह एक डुप्लिकेट है। मैंने अभी संबंधित जानकारी जुड़ी है, जो Google से इस पृष्ठ को हिट करने वाले लोगों के लिए हमेशा उपयोगी होती है। –

उत्तर

13

मुझे इस बात के बारे में discussion/bug report याद है जबकि मैंने कुछ समय पहले इस बारे में सोचा था। लंबी कहानी छोटी: प्रस्तावों के बहुत सारे किए गए हैं, लेकिन किसी कारण से, कोई भी स्वीकार नहीं किया गया है।

बहुत एक संतोषजनक समाधान का प्रस्ताव किया है:

बिंदु मैं सबसे अच्छा this reply में माथुर लगता है। कोई भी ऐसे समाधान के साथ नहीं आया है जो आपके लिए संतोषजनक है, क्योंकि आपने समस्या को अधिक बढ़ा दिया है। इन सभी वर्षों के बाद हमारे पास अभी भी कोई utctotimestamp() नहीं है, क्योंकि आप, और जहां तक ​​मुझे पता है, आप एक ऐसी विधि को स्वीकार करने से इनकार करते हैं जो utcfromtimestamp() को अपनी कार्य सीमा पर माइक्रोसेकंड परिशुद्धता के साथ बदल देता है। इस तरह की एक विधि एक पूरी तरह से उचित और स्वीकार्य समाधान है और एक भाषा के रूप में पाइथन को बहुत अधिक मूल्य जोड़ देगा।

मुझे संदेह है कि आपको पता नहीं है कि आपने इस मुद्दे पर प्रगति को अवरुद्ध रूप से अवरुद्ध कर पाइथन उपयोगकर्ताओं की दुनिया के अनजाने में कितना दर्द किया है। मैंने उन्हें देखा है: छात्रों, दोस्तों, सहकर्मियों - यहां तक ​​कि बहुत ही स्मार्ट और सक्षम लोग इसके द्वारा परेशान हैं। कोई भी कैलेंडर मॉड्यूल में देखने का विचार नहीं करता है। हो सकता है कि अगर आपने उनमें से कुछ को इसके साथ संघर्ष किया, तो आप समझेंगे।

इस कहानी के अंत परिणाम यह हुआ कि documentation was added कि यह कैसे अपने आप को ऐसा करने के लिए पर:

# On the POSIX compliant platforms, `utcfromtimestamp(timestamp)` is 
# equivalent to the following expression: 
datetime(1970, 1, 1) + timedelta(seconds=timestamp) 

# There is no method to obtain the timestamp from a `datetime` instance, 
# but POSIX timestamp corresponding to a `datetime` instance `dt` can be 
# easily calculated as follows. For a naive `dt`: 
timestamp = (dt - datetime(1970, 1, 1))/timedelta(seconds=1) 

# And for an aware ``dt``:: 
timestamp = (dt - datetime(1970, 1, 1, tzinfo=timezone.utc))/timedelta(seconds=1) 
संबंधित मुद्दे