முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 8 · பாடம் 2 இன் 4பாடத்திட்டத்தில் 30/36~12 min
தொகுதி பாடங்கள் (2/4)

தேதி நேரம்: தேதிகள் மற்றும் நேரங்கள்

datetime தொகுதியானது தேதிகள் மற்றும் நேரங்களைக் குறிக்கும் வகுப்புகளை வழங்குகிறது.

மூன்று முக்கிய வகுப்புகள்

  • date — தேதி மட்டும் (ஆண்டு, மாதம், நாள்)
  • time — நேரம் மட்டும் (மணி, நிமிடம், வினாடி, மைக்ரோ விநாடி)
  • datetime — தேதி + ஒன்றாக நேரம்
  • timedelta — ஒரு காலம் (இரண்டு உடனடி இடைவெளி)
Python
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

Python
datetime.now()        # current date + time
date.today()          # current date only

timedelta உடன் எண்கணிதம்

Python
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.0

timedelta ஏற்கிறது days, seconds, microseconds, milliseconds, minutes, hours, weeks (months அல்லது years, தெளிவற்றவை).

வடிவமைத்தல்: strftime

தேதி நேரத்தை மாற்றும் → சரத்தை ஒரு முறைக்கு ஏற்ப மாற்றுகிறது.

Python
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

எதிர்: சரம் → தேதிநேரம், எதிர்பார்க்கப்படும் பேட்டர்ன் கொடுக்கப்பட்டது.

Python
datetime.strptime("01/01/2025", "%d/%m/%Y")
# datetime.datetime(2025, 1, 1, 0, 0)

ISO 8601

தரவு பரிமாற்றத்திற்கு எப்போதும் ISO 8601 வடிவமைப்பை (YYYY-MM-DDTHH:MM:SS):

Python
ora.isoformat()                 # '2025-01-01T14:30:00'
datetime.fromisoformat("2025-01-01T14:30:00")

நேர மண்டலங்கள் மற்றும் அறியப்பட்ட தேதி நேரங்கள்

இயல்பாக, பைத்தானில் உள்ள datetime பொருள்கள் அப்பாவி (அதாவது நேர மண்டலத் தகவல் இல்லை). நிஜ-உலகப் பயன்பாடுகளுக்கு, datetime.timezone.utc வழியாக நேர மண்டலத் தகவலை அமைப்பதன் மூலமோ அல்லது zoneinfo தொகுதியைப் பயன்படுத்துவதன் மூலமோ அவர்களுக்கு அறிவுறுத்தல் சிறந்த நடைமுறையாகும்.

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#python.m8.l2.e1
முயற்சிகள்: 0ஏற்றுகிறது…

ஜனவரி 1, 2025க்குப் பிறகு 30 நாட்கள் தேதியைக் கணக்கிட்டு, `date_str` என்ற மாறியில் 'YYYY-MM-DD' என வடிவமைக்கவும். `date_str` ஐ மதிப்பிடவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

அடிப்படை + டைம்டெல்டா(நாட்கள்=30), பிறகு .strftime

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

மதிப்பாய்வு பயிற்சி

உடற்பயிற்சி#python.m8.l2.e2
முயற்சிகள்: 0ஏற்றுகிறது…

`s = '15/03/2025'` சரம் கொடுக்கப்பட்டால், அதை strptime உடன் மாறி `d` (தேதிநேர பொருள்) இல் அலசவும். வாரத்தின் முழு நாளை மதிப்பிடவும் `d.weekday()` (0=திங்கள், 6=சூரியன்).

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

இத்தாலிய வடிவ வடிவத்துடன் strptime.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

கூடுதல் சவால்

உடற்பயிற்சி#python.m8.l2.e3
முயற்சிகள்: 0ஏற்றுகிறது…

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 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்