मॉड्यूल पाठ (2/4)
दिनांकसमय: दिनांक और समय
datetime मॉड्यूल दिनांक और समय का प्रतिनिधित्व करने के लिए कक्षाएं प्रदान करता है।
तीन मुख्य वर्ग
date— केवल दिनांक (वर्ष, माह, दिन)time- केवल समय (घंटा, मिनट, सेकंड, माइक्रोसेकंड)datetime— दिनांक + समय एक साथtimedelta- एक अवधि (दो क्षणों के बीच का अंतर)
from datetime import date, time, datetime, timedelta
date(2025, 1, 1) # datetime.date(2025, 1, 1)
time(14, 30, 0) # datetime.time(14, 30)
datetime(2025, 1, 1, 14, 30, 0) # datetime.datetime(2025, 1, 1, 14, 30)"अभी": now और today
datetime.now() # current date + time
date.today() # current date onlytimedelta के साथ अंकगणित
from datetime import datetime, timedelta
ora = datetime(2025, 1, 1, 12, 0)
domani = ora + timedelta(days=1)
una_ora_fa = ora - timedelta(hours=1)
# difference between two datetimes -> timedelta
delta = domani - ora
delta.days # 1
delta.total_seconds() # 86400.0timedelta days, seconds, microseconds, milliseconds स्वीकार करता है।
minutes, hours, weeks (months या years नहीं, जो अस्पष्ट हैं)।
फ़ॉर्मेटिंग: strftime
एक पैटर्न के अनुसार डेटाटाइम → स्ट्रिंग को रूपांतरित करता है।
ora = datetime(2025, 1, 1, 14, 30)
ora.strftime("%Y-%m-%d") # '2025-01-01'
ora.strftime("%d/%m/%Y %H:%M") # '01/01/2025 14:30'
ora.strftime("%A %d %B %Y") # 'Wednesday 01 January 2025' (locale-dependent)सर्वाधिक प्रयुक्त निर्देश: %Y 4-अंकीय वर्ष, %m 2-अंकीय महीना, %d 2-अंकीय दिन,
%H 24 घंटे, %M मिनट, %S सेकंड।
पार्सिंग: strptime
विपरीत: स्ट्रिंग → डेटाटाइम, अपेक्षित पैटर्न दिया गया है।
datetime.strptime("01/01/2025", "%d/%m/%Y")
# datetime.datetime(2025, 1, 1, 0, 0)आईएसओ 8601
डेटा विनिमय के लिए हमेशा ISO 8601 प्रारूप (YYYY-MM-DDTHH:MM:SS) को प्राथमिकता दें:
ora.isoformat() # '2025-01-01T14:30:00'
datetime.fromisoformat("2025-01-01T14:30:00")समय क्षेत्र और जागरूक दिनांक समय
डिफ़ॉल्ट रूप से, Python में datetime ऑब्जेक्ट निष्क्रिय होते हैं (अर्थात उनमें कोई समयक्षेत्र जानकारी नहीं होती है)। वास्तविक दुनिया के अनुप्रयोगों के लिए, datetime.timezone.utc के माध्यम से समयक्षेत्र जानकारी सेट करके या zoneinfo मॉड्यूल का उपयोग करके उन्हें जागरूक बनाना सबसे अच्छा अभ्यास है।
इसे अजमाएं
1 जनवरी 2025 के 30 दिन बाद की तारीख की गणना करें और इसे वेरिएबल `date_str` में 'YYYY-MM-DD' के रूप में प्रारूपित करें। `date_str` का मूल्यांकन करें।
संकेत दिखाएँ
बेस + टाइमडेल्टा(दिन=30), फिर .strftime
3 प्रयासों के बाद समाधान उपलब्ध है
व्यायाम की समीक्षा करें
स्ट्रिंग `s = '15/03/2025'` को देखते हुए, इसे वेरिएबल `d` (डेटाटाइम ऑब्जेक्ट) में स्ट्रैपटाइम के साथ पार्स करें। सप्ताह के पूर्णांक दिन का मूल्यांकन करें `d.weekday()` (0=सोम, 6=रविवार)।
संकेत दिखाएँ
इतालवी-प्रारूप पैटर्न के साथ strptime।
3 प्रयासों के बाद समाधान उपलब्ध है
अतिरिक्त चुनौती
Import `date` from the `datetime` module. Calculate the difference in days between December 25, 2026 (`date(2026, 12, 25)`) and December 20, 2026 (`date(2026, 12, 20)`). Store the integer number of days (using the `.days` attribute of the delta) in `days_diff`. Finally, evaluate the variable.
संकेत दिखाएँ
The difference between two dates returns a timedelta. Access the integer days with delta.days.
3 प्रयासों के बाद समाधान उपलब्ध है