Python में datetime मॉड्यूल तारीखों और समय के साथ काम करने के लिए शक्तिशाली टूल प्रदान करता है। यह लाइब्रेरी रिपोर्ट बनाने, एनालिटिक्स, इवेंट प्लानिंग और किसी भी सॉफ्टवेयर प्रोजेक्ट में टाइमस्टैम्प प्रोसेस करने के लिए ज़रूरी है।
datetime मॉड्यूल की मूल बातें
इम्पोर्ट और मुख्य क्लासेस
datetime मॉड्यूल Python की स्टैंडर्ड लाइब्रेरी का हिस्सा है और इसे अलग से इंस्टॉल करने की ज़रूरत नहीं है:
import datetime
from datetime import date, time, datetime, timedelta, timezone
मॉड्यूल के मुख्य क्लासेस:
- datetime.date — तारीखों के साथ काम करना (साल, महीना, दिन)
- datetime.time — समय के साथ काम करना (घंटे, मिनट, सेकंड)
- datetime.datetime — तारीख और समय को जोड़ता है
- datetime.timedelta — तारीखों/समय के बीच अंतर दर्शाता है
- datetime.timezone — टाइमज़ोन के साथ काम करना
वर्तमान तारीख और समय प्राप्त करना
from datetime import datetime, date
# वर्तमान तारीख और समय
now = datetime.now()
print(f"वर्तमान तारीख और समय: {now}")
# केवल वर्तमान तारीख
today = date.today()
print(f"आज की तारीख: {today}")
तारीखें बनाना और उनके साथ काम करना
मैन्युअली तारीखें बनाना
from datetime import date, datetime
# एक विशिष्ट तारीख बनाना
custom_date = date(2025, 5, 9)
print(f"निर्धारित तारीख: {custom_date}")
# तारीख और समय बनाना
custom_datetime = datetime(2025, 5, 9, 14, 30, 45)
print(f"निर्धारित तारीख और समय: {custom_datetime}")
तारीख के घटक निकालना
today = date.today()
print(f"साल: {today.year}")
print(f"महीना: {today.month}")
print(f"दिन: {today.day}")
print(f"सप्ताह का दिन: {today.weekday()}") # 0 = सोमवार, 6 = रविवार
समय के साथ काम करना
समय ऑब्जेक्ट बनाना और उनके साथ काम करना
from datetime import time
# समय बनाना
custom_time = time(14, 30, 45)
print(f"निर्धारित समय: {custom_time}")
# समय के घटक निकालना
print(f"घंटे: {custom_time.hour}")
print(f"मिनट: {custom_time.minute}")
print(f"सेकंड: {custom_time.second}")
माइक्रोसेकंड के साथ समय प्राप्त करना
from datetime import datetime
now = datetime.now()
print(f"माइक्रोसेकंड के साथ समय: {now}")
print(f"माइक्रोसेकंड: {now.microsecond}")
तारीखों के साथ अंकगणितीय संक्रियाएँ
timedelta का उपयोग
from datetime import date, datetime, timedelta
# तारीखों के साथ संक्रियाएँ
today = date.today()
tomorrow = today + timedelta(days=1)
last_week = today - timedelta(weeks=1)
next_month = today + timedelta(days=30)
print(f"कल: {tomorrow}")
print(f"एक सप्ताह पहले: {last_week}")
print(f"एक महीने बाद: {next_month}")
# अधिक जटिल संक्रियाएँ
future_date = today + timedelta(days=100, hours=5, minutes=30)
print(f"100 दिन, 5 घंटे और 30 मिनट बाद: {future_date}")
तारीखों के बीच अंतर की गणना
from datetime import date, datetime
start_date = date(2025, 1, 1)
end_date = date(2025, 12, 31)
# दिनों में अंतर
difference = end_date - start_date
print(f"दिनों में अंतर: {difference.days}")
# datetime के लिए सेकंड में अंतर
start_time = datetime(2025, 5, 9, 10, 0, 0)
end_time = datetime(2025, 5, 9, 15, 30, 45)
time_diff = end_time - start_time
print(f"सेकंड में अंतर: {time_diff.total_seconds()}")
print(f"घंटों में अंतर: {time_diff.total_seconds() / 3600}")
तारीखों और समय को फॉर्मेट करना
strftime मेथड
from datetime import datetime
now = datetime.now()
# विभिन्न फॉर्मेट
print(now.strftime("%Y-%m-%d")) # 2025-05-09
print(now.strftime("%d/%m/%Y")) # 09/05/2025
print(now.strftime("%A, %d %B %Y")) # शुक्रवार, 09 मई 2025
print(now.strftime("%I:%M %p")) # 02:30 PM
स्ट्रिंग को तारीख में बदलना (strptime)
from datetime import datetime
date_string = "2025-05-09 14:30:00"
parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
print(f"पार्स की गई तारीख: {parsed_date}")
# अन्य फॉर्मेट
date_string2 = "09/05/2025"
parsed_date2 = datetime.strptime(date_string2, "%d/%m/%Y")
print(f"पार्स की गई तारीख: {parsed_date2}")
टाइमज़ोन के साथ काम करना
टाइमज़ोन-अवेयर datetime ऑब्जेक्ट
from datetime import datetime, timezone, timedelta
# UTC टाइमज़ोन
utc_time = datetime.now(timezone.utc)
print(f"UTC समय: {utc_time}")
# विशिष्ट टाइमज़ोन (UTC+5:30)
ist_offset = timedelta(hours=5, minutes=30)
ist_timezone = timezone(ist_offset)
ist_time = datetime.now(ist_timezone)
print(f"भारतीय समय (IST): {ist_time}")
# टाइमज़ोन बदलना
utc_time = datetime.now(timezone.utc)
ist_time = utc_time.astimezone(ist_timezone)
print(f"UTC से IST: {ist_time}")
व्यावहारिक उदाहरण
उम्र की गणना
from datetime import date
def calculate_age(birth_date):
today = date.today()
age = today.year - birth_date.year
# अगर इस साल अभी जन्मदिन नहीं आया है
if (today.month, today.day) < (birth_date.month, birth_date.day):
age -= 1
return age
birth_date = date(1990, 5, 15)
age = calculate_age(birth_date)
print(f"उम्र: {age} साल")
तारीखों की सूची बनाना
from datetime import date, timedelta
def generate_date_range(start_date, end_date):
dates = []
current_date = start_date
while current_date <= end_date:
dates.append(current_date)
current_date += timedelta(days=1)
return dates
start = date(2025, 5, 1)
end = date(2025, 5, 10)
date_list = generate_date_range(start, end)
for d in date_list:
print(d)
तारीख वैलिडेशन
from datetime import datetime
def validate_date(date_string, format="%Y-%m-%d"):
try:
datetime.strptime(date_string, format)
return True
except ValueError:
return False
print(validate_date("2025-05-09")) # True
print(validate_date("2025-13-01")) # False
सामान्य गलतियाँ और सुझाव
- टाइमज़ोन को नज़रअंदाज़ करना: हमेशा टाइमज़ोन-अवेयर datetime का उपयोग करें, खासकर जब अलग-अलग टाइमज़ोन के डेटा के साथ काम कर रहे हों।
- timedelta के साथ गलत संक्रियाएँ: याद रखें कि timedelta केवल दिनों, सेकंड और माइक्रोसेकंड को स्टोर करता है।
- लोकेल सेटिंग्स: strftime का उपयोग करते समय, सुनिश्चित करें कि आपकी लोकेल सेटिंग्स सही हैं, खासकर दिनों और महीनों के नामों के लिए।
निष्कर्ष
Python में datetime मॉड्यूल तारीखों और समय के साथ काम करने के लिए एक व्यापक टूलसेट प्रदान करता है। चाहे आप डेटा एनालिसिस, वेब डेवलपमेंट, या ऑटोमेशन कर रहे हों, इन अवधारणाओं को समझना आपको अधिक कुशल और सटीक कोड लिखने में मदद करेगा।