పైథాన్ డేట్‌టైమ్


పైథాన్ ఇన్‌బిల్ట్ మాడ్యూల్‌ను అందిస్తుంది 'తేదీసమయం'తేదీ మరియు సమయంతో పనిచేయడానికి. దానితో పనిచేయడానికి మనం 'డేట్‌టైమ్' మాడ్యూల్‌ను దిగుమతి చేసుకోవాలి. పైథాన్ డేట్‌టైమ్ వాడకాన్ని అర్థం చేసుకోవడానికి సరళమైన ప్రోగ్రామ్‌లతో పనిచేయడం ప్రారంభిద్దాం.

విషయ సూచిక

పైథాన్ డేట్‌టైమ్ మాడ్యూల్ యొక్క లక్షణాలు:

మేము dir () ను ఉపయోగించి పైథాన్ డేట్‌టైమ్ మాడ్యూల్ యొక్క లక్షణాల జాబితాను పొందవచ్చు.

import datetime

print(dir(datetime))
['MAXYEAR', 'MINYEAR', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__packa
ge__', '__spec__', 'date', 'datetime', 'datetime_CAPI', 'time', 'timedelta', 'timezone', 'tzinfo']

డేట్‌టైమ్ మాడ్యూల్ యొక్క సాధారణంగా ఉపయోగించే తరగతులు:

  • తేదీ తరగతి
  • సమయ తరగతి
  • డేట్‌టైమ్ క్లాస్
  • టైమ్‌డెల్టా క్లాస్

పైథాన్ డేట్‌టైమ్ క్లాస్:

ప్రస్తుత తేదీ మరియు సమయాన్ని పొందండి:

'డేట్‌టైమ్' క్లాస్‌తో మనం ప్రస్తుత తేదీ మరియు సమయాన్ని పొందవచ్చు. 'డేట్‌టైమ్' తరగతికి 'ఇప్పుడు' అనే పద్ధతి ఉంది. ఇప్పుడు () పద్ధతిని పిలవడం ప్రస్తుత స్థానిక తేదీ మరియు సమయాన్ని అందిస్తుంది.

import datetime

print(datetime.datetime.now())
2020-09-08 15:55:17.833232

డేట్‌టైమ్ తరగతిని తక్షణం చేయండి:

మేము డేట్‌టైమ్ క్లాస్‌ని తక్షణం చేయవచ్చు. కన్స్ట్రక్టర్ ఈ క్రింది వాదనలు తీసుకుంటాడు:

datetime.datetime(year, month, day, hour, minute, second, microsecond)

అయితే సంవత్సరం, నెల మరియు రోజు తప్పనిసరి పారామితులు. మిగిలిన పారామితులు ఐచ్ఛికం.

import datetime

date_time1=datetime.datetime(2020, 2, 29)
date_time2=datetime.datetime(2020, 2, 29, 23, 59, 59, 345678)
print(date_time1)
print(date_time2)
2020-02-29 00:00:00
2020-02-29 23:59:59.345678

డేట్‌టైమ్ క్లాస్ యొక్క లక్షణాలను పొందండి:

మేము డేట్‌టైమ్ క్లాస్ యొక్క లక్షణాలను గంట, నెల, రెండవ, టైమ్‌స్టాంప్ మొదలైన వాటి వస్తువును ఉపయోగించి ముద్రించవచ్చు.

import datetime

date_time=datetime.datetime(2020, 2, 29, 23, 59, 59, 345678)
print(date_time.month)
print(date_time.microsecond)
print(date_time.timestamp())
2
345678
1583000999.345678

తేదీ తరగతి:

ప్రస్తుత తేదీని పొందండి:

మేము ప్రస్తుత తేదీని 'తేదీ' తరగతి నుండి రెండు విధాలుగా పొందవచ్చు:

ఈ రోజు () ఉపయోగించి:

తరగతి 'తేదీ'కి' ఈ రోజు 'అనే పద్ధతి ఉంది. మేము ఈ రోజు () పద్ధతిని పిలిచినప్పుడు, ఇది ప్రస్తుత స్థానిక తేదీని మాత్రమే అందిస్తుంది.

import datetime

print(datetime.date.today())
2020-09-08
ఫ్రమ్‌టైమ్‌స్టాంప్ () ను ఉపయోగించడం:

యునిక్స్ టైమ్‌స్టాంప్ అంటే యుటిసిలో ఒక నిర్దిష్ట తేదీ మరియు జనవరి 1, 1970 మధ్య సెకన్ల సంఖ్య. ఫ్రమ్‌టైమ్‌స్టాంప్ () పద్ధతి టైమ్‌స్టాంప్‌ను తేదీకి మారుస్తుంది.

import datetime

print(datetime.date.fromtimestamp(1599571319))
2020-09-08

తేదీ తరగతిని తక్షణం చేయండి:

మేము తేదీ తరగతి యొక్క వస్తువులను కూడా తక్షణం చేయవచ్చు. తేదీ తరగతి యొక్క కన్స్ట్రక్టర్ 3 తప్పనిసరి వాదనలు తీసుకుంటాడు: (సంవత్సరం, నెల, రోజు).

import datetime

print(datetime.date(2020, 2, 29))
2020-02-29

తేదీ యొక్క సంవత్సరం, నెల మరియు రోజు పొందండి:

మేము ఒక నిర్దిష్ట తేదీ యొక్క సంవత్సరం, నెల మరియు రోజును తేదీ తరగతి నుండి ఒక్కొక్కటిగా పొందవచ్చు.

import datetime

today=datetime.date.today()
print(today.year)
print(today.month)
print(today.day)
2020
9
8

సమయ తరగతి:

ప్రస్తుత సమయాన్ని పొందండి:

దురదృష్టవశాత్తు, మేము తేదీ తరగతి నుండి తేదీని పొందినందున ప్రస్తుత సమయం సమయ తరగతి నుండి పొందలేము. మేము ప్రస్తుత సమయాన్ని డేట్‌టైమ్ క్లాస్ యొక్క ఇప్పుడు () పద్ధతి నుండి క్రింద పొందవచ్చు:

import datetime
print(datetime.datetime.now().time())
20:30:49.929395

సమయ తరగతిని తక్షణం చేయండి:

తేదీ తరగతి మాదిరిగా, మేము సమయ తరగతిని కూడా తక్షణం చేయవచ్చు.

import datetime
print(datetime.time())
00:00:00

కన్‌స్ట్రక్టర్ టైమ్ క్లాస్ ఈ క్రింది వాదనలు తీసుకుంటుంది:

datetime.time(hour, minute, second, microsecond)

మేము అన్ని వాదనలను ఆమోదించడం తప్పనిసరి కాదు.

import datetime
print(datetime.time(11))
print(datetime.time(11, 59))
print(datetime.time(11, 59, 59))
print(datetime.time(11, 59, 59, 345678))
11:00:00
11:59:00
11:59:59
11:59:59.345678

గంట, నిమిషం, రెండవ, మైక్రోసెకండ్ పొందండి:

సమయ వస్తువును ఉపయోగించి గంట, నిమిషం, రెండవ మరియు మైక్రోసెకండ్ లక్షణాలను ఒక్కొక్కటిగా ముద్రించవచ్చు.

import datetime

time_object=datetime.time(11, 59, 59, 345678)
print(time_object.hour)
print(time_object.minute)
print(time_object.second)
print(time_object.microsecond)
11
59
59
345678

టైమ్‌డెల్టా తరగతి:

టైమ్‌డెల్టా రెండు తేదీలు లేదా రెండు సార్లు మధ్య వ్యత్యాసం తప్ప మరొకటి కాదు.

import datetime

date1=datetime.date(2019,2,28)
date2=datetime.date(2020,2,29)
time1=datetime.datetime(2019,2,28,7,55,59,234567)
time2=datetime.datetime(2020,2,29,6,59,58,345678)

timedelta1=date2-date1
timedelta2=time2-time1

print(timedelta1)
print(timedelta2)
print(type(timedelta1))
print(type(timedelta2))
366 days, 0:00:00
365 days, 23:03:59.111111
<class 'datetime.timedelta'>
<class 'datetime.timedelta'>

తేదీ మరియు డేట్‌టైమ్ వస్తువుల మధ్య వ్యత్యాసాన్ని మీరు గమనించినట్లయితే, ఇది టైమ్‌డెల్టా.

టైమ్‌డెల్టా తరగతిని తక్షణం చేయండి:

ఇతర తరగతుల మాదిరిగానే, మేము టైమ్‌డెల్టా తరగతిని కూడా తక్షణం చేయవచ్చు.

import datetime

timedelta1=datetime.timedelta(weeks=2, seconds=59)
timedelta2=datetime.timedelta(days=2, seconds=56)

timedelta3=timedelta1-timedelta2

print(timedelta3)
print(type(timedelta3))
12 days, 0:00:03
<class 'datetime.timedelta'>

ప్రతికూల టైమ్‌డెల్టా వస్తువులు:

నెగటివ్ టైమ్‌డెల్టా ఆబ్జెక్ట్‌ను ప్రింట్ చేయడానికి మనం అబ్స్ () ను ఉపయోగించుకోవచ్చు.

import datetime

timedelta1=datetime.timedelta(weeks=2, seconds=59)
timedelta2=datetime.timedelta(days=2, seconds=56)

timedelta3=timedelta2-timedelta1

print(timedelta3)
print(abs(timedelta3))
-13 days, 23:59:57
12 days, 0:00:03

మేము రెండు టైమ్‌డెల్టా వస్తువుల మధ్య వ్యత్యాసాన్ని మాత్రమే కాకుండా, '+' ఆపరేటర్‌తో ఉన్న మొత్తాన్ని కూడా కనుగొనలేము. అలాగే, టైమ్‌డెల్టా వస్తువులను పూర్ణాంకాలు మరియు తేలియాడుతూ గుణించి విభజించవచ్చు.

పైథాన్ ఫార్మాట్ డేట్‌టైమ్:

కొన్ని దృష్టాంతంలో, మీరు తేదీ మరియు సమయాన్ని మీకు కావలసిన ఫార్మాట్‌లో సూచించాలనుకోవచ్చు. ఉదాహరణకు, 'yyyy-mm-dd' ఆకృతిని ఉపయోగించటానికి బదులుగా తేదీల కోసం, మీకు 'dd / mm / yyyy' ఆకృతి కావాలి.

పైథాన్ ఈ ప్రయోజనం కోసం ఈ క్రింది రెండు పద్ధతులను అందిస్తుంది.

  • strftime () - డేట్‌టైమ్ ఆబ్జెక్ట్‌ను స్ట్రింగ్‌గా మారుస్తుంది
  • strptime () - స్ట్రింగ్ ఆబ్జెక్ట్‌ను తిరిగి డేట్‌టైమ్‌గా మారుస్తుంది

strftime ():

డేట్‌టైమ్, తేదీ మరియు సమయం తరగతుల క్రింద strftime () పద్ధతి నిర్వచించబడింది. అందువల్ల ఇది డేట్‌టైమ్, సమయం మరియు తేదీ వస్తువులను స్ట్రింగ్‌గా మారుస్తుంది.

import datetime

now=datetime.datetime.now()

t=now.strftime('%H:%M:%S')
str1=now.strftime('%d/%m/%Y, %H:%M:%S')
str2=now.strftime('%m/%d/%Y, %H:%M:%S')

print(now)
print(t)
print(str1)
print(str2)
print(type(t),type(str1),type(str2))
2020-09-09 17:34:27.000451
17:34:27
09/09/2020, 17:34:27
09/09/2020, 17:34:27
<class 'str'> <class 'str'> <class 'str'>

ఇక్కడ% H,% M,% S,% Y,% m,% s ఫార్మాట్ కోడ్‌లు. దిగువ ఫార్మాట్ కోడ్‌ల జాబితా, అవి దేనిని సూచిస్తాయి మరియు తీసుకునే విలువ.

% H - గంట (00 నుండి 23 వరకు)

% M - నిమిషాలు (00 నుండి 59 వరకు)

% S - సెకన్లు (00 నుండి 59 వరకు)

% Y - సంవత్సరం (0000 నుండి 9999 వరకు)

% m - నెల (00 నుండి 12 వరకు)

% d - రోజు (00 నుండి 31 వరకు)

strptime ():

strptime () ఇచ్చిన స్ట్రింగ్ నుండి డేట్‌టైమ్ వస్తువును సృష్టిస్తుంది.

import datetime

str='29 March, 2020'

d=datetime.datetime.strptime(str, '%d %B, %Y')
print(d)
print(type(d))
2020-03-29 00:00:00
<class 'datetime.datetime'>

ఇక్కడ ఫార్మాట్ కోడ్% B నెల పూర్తి పేరును సూచిస్తుంది.