पायथन डेटाइम - दिन, महीने, वर्ष प्राप्त करने के लिए स्ट्रैप्टम का उपयोग करने के बाद निश्चित घंटे और मिनट सेट करना


174

मैंने सफलतापूर्वक कुछ 26 Sep 2012प्रारूप को 26-09-2012उपयोग में लाया है :

datetime.strptime(request.POST['sample_date'],'%d %b %Y')

हालाँकि, मुझे नहीं पता कि 11:59 से ऊपर की तरह किसी चीज़ के घंटे और मिनट कैसे सेट करें। क्या किसी को भी यह करना आता है?

ध्यान दें, यह भविष्य की तारीख या कोई भी यादृच्छिक हो सकता है, न कि केवल वर्तमान तिथि।

जवाबों:


363

उपयोग करें datetime.replace:

from datetime import datetime
date = datetime.strptime('26 Sep 2012', '%d %b %Y')
newdate = date.replace(hour=11, minute=59)

जल्दी जवाब देने का शुक्रिया! :) अगर अतिरिक्त दिनांक चर के बिना इसे करने का एक तरीका है तो बस जिज्ञासु? (मैं एक अजगर नौसिखिया हूँ)
user1678031

2
हाँ, बस करो date = datetime.strptime('26 Sep 2012', '%d %b %Y').replace(hour=11, minute=59)। मैंने अतिरिक्त वैरिएबल का उपयोग किया ताकि लाइन बहुत लंबी न हो :)
nneonneo

14
इसके अलावा ध्यान देने योग्य: datetime.replaceडेटाइम की एक नई प्रति लौटाता है (क्योंकि datetimeअपरिवर्तनीय है): यह str.replaceउस संबंध में जैसा है।
nnonneo

मैं '2016-06-01' के बाद सब कुछ कैसे निकाल सकता हूं ताकि घंटे मिनट और दूसरा गायब हो जाए?
पीवी 8

46

datetime.replace () सबसे अच्छा विकल्प प्रदान करेगा। इसके अलावा, यह दिन, वर्ष और महीने की जगह के लिए सुविधा प्रदान करता है।

मान लीजिए कि हमारे पास एक datetimeवस्तु है और दिनांक इस प्रकार है: "2017-05-04"

>>> from datetime import datetime
>>> date = datetime.strptime('2017-05-04',"%Y-%m-%d")
>>> print(date)
2017-05-04 00:00:00
>>> date = date.replace(minute=59, hour=23, second=59, year=2018, month=6, day=1)
>>> print(date)
2018-06-01 23:59:59

8
आपके उत्तर के 5 साल पहले पोस्ट किए गए nneonneo के खिलाफ आपके उत्तर का अतिरिक्त मूल्य क्या है?
सैमुअल Dauzon
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.