ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 8 · 4లో పాఠం 2కోర్సులో 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'గా ఫార్మాట్ చేయండి. `తేదీ_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 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది