தொகுதி பாடங்கள் (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)ISO 8601
தரவு பரிமாற்றத்திற்கு எப்போதும் ISO 8601 வடிவமைப்பை (YYYY-MM-DDTHH:MM:SS):
ora.isoformat() # '2025-01-01T14:30:00'
datetime.fromisoformat("2025-01-01T14:30:00")நேர மண்டலங்கள் மற்றும் அறியப்பட்ட தேதி நேரங்கள்
இயல்பாக, பைத்தானில் உள்ள datetime பொருள்கள் அப்பாவி (அதாவது நேர மண்டலத் தகவல் இல்லை). நிஜ-உலகப் பயன்பாடுகளுக்கு, datetime.timezone.utc வழியாக நேர மண்டலத் தகவலை அமைப்பதன் மூலமோ அல்லது zoneinfo தொகுதியைப் பயன்படுத்துவதன் மூலமோ அவர்களுக்கு அறிவுறுத்தல் சிறந்த நடைமுறையாகும்.
முயற்சி செய்து பாருங்கள்
ஜனவரி 1, 2025க்குப் பிறகு 30 நாட்கள் தேதியைக் கணக்கிட்டு, `date_str` என்ற மாறியில் 'YYYY-MM-DD' என வடிவமைக்கவும். `date_str` ஐ மதிப்பிடவும்.
குறிப்பைக் காட்டு
அடிப்படை + டைம்டெல்டா(நாட்கள்=30), பிறகு .strftime
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
`s = '15/03/2025'` சரம் கொடுக்கப்பட்டால், அதை strptime உடன் மாறி `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 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்