वास्तव में, पायथन के datetime
तरीकों संभाल माइक्रोसेकंड सटीक, नहीं मिलीसेकंड:
>>> nanos = 1360287003083988472
>>> secs = nanos/1e9
>>> dt = datetime.datetime.fromtimestamp(secs)
>>> dt.strftime('%Y-%m-%dT%H:%M:%S.%f')
'2013-02-07T17:30:03.083988'
लेकिन आप वास्तव में नैनोसेकंड जरूरत है, अभी भी मदद नहीं करता है।
def format_my_nanos(nanos):
dt = datetime.datetime.fromtimestamp(nanos/1e9)
return '{}{:03.0f}'.format(dt.strftime('%Y-%m-%dT%H:%M:%S.%f'), nanos % 1e3)
यह मैं देता है:: आपका सबसे अच्छा शर्त अपने स्वयं के आवरण लिखना है
'2013-02-07T17:30:03.083988472'
बेशक आप एक ही बात कर सकते थे, भले ही अजगर पर सभी उप-दूसरे परिशुद्धता नहीं किया ...
def format_my_nanos(nanos):
dt = datetime.datetime.fromtimestamp(nanos/1e9)
return '{}.{:09.0f}'.format(dt.strftime('%Y-%m-%dT%H:%M:%S'), nanos % 1e9)
@abarnert मुझे ऐसा नहीं लगता है। यह प्रश्न एक संख्या को मानव-पठनीय स्ट्रिंग में बदलने के साथ संबंधित है, जबकि वह स्ट्रिंग से 'डेटाटाइम' ऑब्जेक्ट में कनवर्ट करने का प्रयास कर रहा है। – ethguo
@ ethg242: यह प्रश्न सभी जगहों पर है, लेकिन यह एक ही चीज़ पर आता है: 'डेटाटाइम' नैनोसेकंड को संभाल नहीं करता है, इसलिए आपको गणित/स्ट्रिंग स्वयं करना होगा। हो सकता है कि 'strptime' के बारे में एक प्रश्न और दूसरा' strftime 'के बारे में एक प्रश्न हो। – abarnert
यह डुप्लिकेट – n611x007