से कम है, यदि यह घना है तो पहले से खेद है। मैं आखिरी बार एक ट्वीट पोस्ट करने के बाद से दिन ढूंढने की कोशिश कर रहा हूं। जिस समस्या में मैं दौड़ रहा हूं वह यह है कि जब तिथियां अलग होती हैं, उदाहरण के लिए, आज और कल, लेकिन पर्याप्त दिन पूरे "दिन" के लिए पास नहीं हुए हैं।पायथन में "दिन" निर्धारित करते समय timedelta.days एक
# "created_at" is part of the Twitter API, returned as UTC time. The
# timedelta here is to account for the fact I am on the west coast, USA
lastTweetAt = result.created_at + timedelta(hours=-8)
# get local time
rightNow = datetime.now()
# subtract the two datetimes (which gives me a timedelta)
dt = rightNow - lastTweetAt
# print the number of days difference
print dt.days
समस्या यह है कि अगर मैं एक ट्वीट पोस्ट में कल का कहना है कि 5 पीएम और सुबह 8 बजे आज स्क्रिप्ट चला रहा हूँ, केवल 15 घंटे बीत चुके हैं, जो 0 दिन है। लेकिन जाहिर है, मैं कहना चाहता हूं कि यह कल आखिरी ट्वीट के बाद से 1 दिन रहा है। और "+1" जोड़ने का एक झुकाव मदद नहीं करेगा क्योंकि अगर मैंने आज ट्वीट किया है, तो मैं परिणाम 0
क्या अंतर पाने के लिए टाइमडेल्टा का उपयोग करने से बेहतर दृष्टिकोण है?
समाधान मेटी लिरा
द्वारा प्रदान की जवाब तो वे (timestamps के बिना) मोटे तारीख वस्तुओं में बदल दिए जाते datetimes पर() .date कॉल करने के लिए है।
# "created_at" is part of the Twitter API, returned as UTC time.
# the -8 timedelta is to account for me being on the west coast, USA
lastTweetAt = result.created_at + timedelta(hours=-8)
# get UTC time for right now
rightNow = datetime.now()
# truncate the datetimes to date objects (which have dates, but no timestamp)
# and subtract them (which gives me a timedelta)
dt = rightNow.date() - lastTweetAt.date()
# print the number of days difference
print dt.days
क्या पर 'dt.seconds' तो देख क्या बुराई है? –
मैन्युअल रूप से टाइमज़ोन को प्रबंधित करने से बचने के लिए 'rightNow = datetime.utcnow()' का प्रयास करें (मान लें कि आपके पास सही स्थानीय समय/टाइमज़ोन सेटिंग्स हैं) – SingleNegationElimination
। सेकंड्स मदद नहीं करता क्योंकि मैं ट्वीट्स के बीच _days_ जानना चाहता हूं। अगर मैं 11 बजे ट्वीट करता हूं और स्क्रिप्ट को 1 बजे (2 घंटे बाद) चलाता हूं तो मैं "1" वापस लौटना चाहता हूं। लेकिन अगर मैं 1 बजे एक ट्वीट पोस्ट करता हूं और 3 बजे स्क्रिप्ट चलाता हूं, तो मुझे एक "0" लौटाया जाता है। .seconds के रूप में एक ही समस्या होने के लिए .days। utcnow() ठीक है, लेकिन क्या मैं ट्वीट के समय को अपने स्थानीय समय में बदलता हूं या अपना स्थानीय समय यूटीसी में बदलता हूं, वह सिर्फ छह में से एक दर्जन दर्जन है। – psxndc