हटाएं मैं औसत समय की गणना करता हूं और मैं परिणामस्वरूप औसत को माइक्रोसेकंड के बिना प्रदर्शित करना चाहता हूं।पायथन टाइमडेल्टा माइक्रोसेकंड
avg = sum(datetimes, datetime.timedelta(0))/len(datetimes)
धन्यवाद
हटाएं मैं औसत समय की गणना करता हूं और मैं परिणामस्वरूप औसत को माइक्रोसेकंड के बिना प्रदर्शित करना चाहता हूं।पायथन टाइमडेल्टा माइक्रोसेकंड
avg = sum(datetimes, datetime.timedelta(0))/len(datetimes)
धन्यवाद
timedetla ले लो और अपने स्वयं के माइक्रोसेकंड, माइक्रोसेकंड के रूप में विशेषता को हटाने और केवल पढ़ने के लिए:
avg = sum(datetimes, datetime.timedelta(0))/len(datetimes)
avg = avg - datetime.timedelta(microseconds=avg.microseconds)
आप अपनी खुद की छोटी सी समारोह कर सकते हैं अगर यह एक आवर्ती की जरूरत है:
import datetime
def chop_microseconds(delta):
return delta - datetime.timedelta(microseconds=delta.microseconds)
मुझे एक बेहतर समाधान नहीं मिला है।
जहां तक मैं कह सकता हूं, यह 'माइक्रोसॉन्ड' होना चाहिए। – daviewales
यह 'microseconds' होना चाहिए। सबूत [यहां] (http://pastebin.com/P4qH1G51) –
यह टाइमेडेलटा ऑब्जेक्ट्स पर 'माइक्रोसॉन्ड' है, लेकिन समय और डेटाटाइम ऑब्जेक्ट्स पर 'माइक्रोसॉन्ड' है। –
यह सिर्फ प्रदर्शन के लिए, इस विचार से काम करता है है, तो:
avgString = str(avg).split(".")[0]
विचार लेने के लिए केवल किस बिंदु से पहले है। यह 01:23:45 वापस आ जाएगी लिए 01: 23: 45,1235
एक और विकल्प, यह देखते हुए timedetla आप कर सकते हैं:
avg = datetime.timedelta(seconds=math.ceil(avg.total_seconds()))
आप math.round()
या math.floor()
साथ math.ceil()
जगह ले सकता है, दशा पर निर्भर करता है।
तुम इतनी तरह datetimes के तत्वों को संशोधित कर सकते हैं:
In [1]: datetime.datetime.now().replace(hour=0, minute=0, second=0, microsecond=0)
Out[1]: datetime.datetime(2017, 4, 28, 0, 0)
timedeltas की एक सूची क्या है 'datetimes' ...? यदि ऐसा है, तो योग microseconds सहित timedelta ऑब्जेक्ट देता है ... तो समस्या क्या है? – tdelaney
'avg.strftime ("% वाई-% एम-% डी% एच:% एम:% एस ")', लेकिन यह स्ट्रिंग वापस करेगा। –