Datetime মডিউল

সময় ( দিন , তারিখ , বছর , সময় . . . ) ইত্যাদির জন্য আমরা পাইথনের “” মডিউলটি ব্যবহার করবো। এই লেসন এ আমরা datetimeমডিউলএর অন্তর্ভুক্ত বহুল ব্যবহৃত তিনটি ক্লাস date” , “datetime” & “timedeltaনিয়ে জানবো

date ক্লাস

তারিখ নিয়ে কাজ করার জন্য আমরা date ক্লাস ব্যবহার করবো। তার জন্য প্রথমে date ক্লাসটিকে ইম্পোর্ট করে নিবো

আজকের তারিখ

নিচের কোডটি রান করলে আমরা আজকের দিনের তারিখ টি পেয়ে যাবো। তারিখের ফরম্যাটটি হবে (yyyy-mm-dd) অর্থাৎ (বছরমাসদিন) , আমরা চাইলে ফরম্যাটটি চেঞ্জ করতে পারবো। কিন্তু সেটি আমরা এই লেসন এর একদম শেষের দিকে দেখবো

from datetime import date

today = date.today()
print(today)

# Output 2022-09-06

 

যদি বর্তমান দিন , মাস , বছর বের করতে চাই তাহলে

from datetime import date

today = date.today()
print(f"Current Day : {today.day}")
print(f"Current Month : {today.month}")
print(f"Current Year : {today.year}")

"""
Output

Current Day : 6
Current Month : 9
Current Year : 2022

"""

 

Type:

আমরা যদি ভ্যারিয়েবল এর টাইপ চেক দেয় তাইলে দেখতে পাবো , সেটি ক্লাসের একটি অবজেক্ট

from datetime import date

today = date.today()

print( type(today) )

# Output : <class 'datetime.date'>

 

Date

from datetime import date 

some_date = date(2023,12,31)

print(some_date)

# Output 2023-12-31

 

datetime ক্লাস

তারিখের সাথে সময় নির্ণয়ের জন্য আমরা datetime ক্লাস ব্যবহার করবো , তার জন্য প্রথমে datetime ক্লাসটিকে ইম্পোর্ট করে নিবো

from datetime import datetime

 

বর্তমান সময়

নিচের কোডটি রান করলে আমরা আজকের দিনের তারিখসহসময় টি পেয়ে যাবো। সময় ফরম্যাটটি হবে ( yyyy-mm-dd HH:MM:SS:Timestamp ) অর্থাৎ ( বছরমাসদিন ঘন্টা:মাস:সেকেন্ড:টাইমস্টাম্প ) .

from datetime import datetime

current_time = datetime.now()

print(current_time)

# output 2022-09-06 10:21:11.876229

 

আলাদা করে , সময় ঘন্টা বের করা

from datetime import datetime

current_time = datetime.now()

print(f"Current Second: {current_time.second}")
print(f"Current Minute: {current_time.minute}")
print(f"Current Hour: {current_time.hour}")
print(f"Current Timestamp: {current_time.timestamp()}")
print(f"Current Day: {current_time.day}")
print(f"Current Month: {current_time.month}")
print(f"Current Year: {current_time.year}")


"""
Output

Current Second: 11
Current Minute: 25
Current Hour: 10
Current Timestamp: 1662438311.04346
Current Day: 6
Current Month: 9
Current Year: 2022
"""

 

সংখ্যা দিয়ে তারিখসহ সময় বের করা

from datetime import datetime

day1 = datetime(2022,10,1,10,50)

print(day1)
print( type(day1) )

"""
Output
2022-10-01 10:50:00
<class 'datetime.datetime'>
"""

 

দুইটি সময়ের মধ্যে ব্যবধান বের করা

from datetime import datetime

day1 = datetime(2022,10,1,10,50)

day2 = datetime(2022,12,1)

print(day2 - day1)

# Output 60 days, 13:10:00

 

সময়ের ব্যবধান থেকে আলাদা করে নির্দিষ্টি করে দিনের ব্যবধান এবং সেকেন্ড ব্যবধান বের করা

from datetime import datetime

day1 = datetime(2022,10,1,10,50)
day2 = datetime(2022,12,1)

difference = day2 - day1
print(f"Day Interval : {difference.days} Days")
print(f"Second Interval : {difference.total_seconds()} seconds")

"""
Output

Day Interval : 60 Days
Second Interval : 5231400.0 seconds
"""

 

timedelta ক্লাস

যেকোনো সময়ের ব্যবধানই ক্লাসের একটি অবজেক্ট , যদি আমরা টাইপটি প্রিন্ট করি

from datetime import datetime

day1 = datetime(2022,10,1,10,50)
day2 = datetime(2022,12,1)

difference = day2 - day1
print(type(difference))

# Output : <class 'datetime.timedelta'>

 

আজকের তারিখ থেকে ১০ দিন পরের তারিখ বের করা

from datetime import datetime, timedelta

some_day = datetime(2022,12,1)
another_day = some_day + timedelta( days=10 )

print(f"Date : {some_day}")
print(f"After 10 days : {another_day}")

"""
Output
Date : 2022-12-01 00:00:00
After 10 days : 2022-12-11 00:00:00
"""

 

ফরম্যাটিং

আমরা দুই উপায় এ ফরম্যাটিং করতে পারি, ) স্ট্রিং থেকে ফরম্যাট , ) datetime অবজেক্ট থেকে ফরম্যাট

) স্ট্রিং থেকে ফরম্যাট

datetime.strptime()

Python-strptime() ফাংশনটি তারিখ এবং সময়ের স্ট্রিং উপস্থাপনা ফর্ম্যাট করতে এবং রিটার্ন করতে ব্যবহৃত হয়। এটি একটি ইনপুট হিসাবে তারিখ, সময়, বা উভয়ই নেয় এবং এটিকে দেওয়া ফর্ম্যাট অনুসারে পার্স করে। 
from datetime import datetime

string_of_date = "12 Dec , 2022"
format = "%d %b , %Y"

formatted_date = datetime.strptime(string_of_date, format)

print(formatted_date)

print(f"string_of_date type: {type(string_of_date)}")
print(f"formatted_date type: {type(formatted_date)}")

# Output
# 2022-12-12 00:00:00
# string_of_date type: <class 'str'>
# formatted_date type: <class 'datetime.datetime'>

pic Date And Time

datetime.strftime()

from datetime import datetime

current_time = datetime.now()
formatted_time = current_time.strftime("%d-%m-%Y %H:%M")

print(formatted_time)

# Output 07-09-2022 10:28

 

format  অর্থ  উদাহরণ
%a সংক্ষিপ্ত কর্মদিবসের নাম  Sun, Mon,…
%A সপ্তাহের পুরো দিনের নাম  Sunday, Monday, Tuesday……
%w সংখ্যা হিসেবে সপ্তাহের দিন  0,1,2,…………6
%d শূন্য প্যাডেড দশমিক সংখ্যা হিসেবে মাসের দিন 01,02,03,………31
%b সংক্ষিপ্ত মাসের নাম Jan, Feb,….Dec
%B পূর্ণাঙ্গ মাসের নাম January,February……
%m শূন্য-প্যাডেড দশমিক সংখ্যা হিসাবে মাস  01,02,03……..12
%y শূন্য-প্যাডেড দশমিক সংখ্যা হিসাবে শতাব্দী ছাড়া বছর  00,01,02,…..99
% Y  দশমিক সংখ্যা হিসাবে শতক সহ বছর।  2013,2019,2020  etc
% H শূন্য-প্যাডেড দশমিক সংখ্যা হিসাবে ঘন্টা (24-ঘন্টা ঘড়ি) 00,01,02………23
%I শূন্য-প্যাডেড দশমিক সংখ্যা হিসাবে ঘন্টা (12-ঘন্টা ঘড়ি) 01,02,03,……12
%p লোকালের AM বা PM। AM, PM
%M শূন্য-প্যাডেড দশমিক সংখ্যা হিসাবে মিনিট 00,01,02,…….59

 

Get Timezone time:

পৃথিবীর কোন অংশ বিবেচনা করা হচ্ছে তার উপর নির্ভর করে একটি টাইম জোন প্রমিত সময়ের প্রতিনিধিত্ব করে। সহজ ভাষায়, টাইমজোন একটি অঞ্চলের স্থানীয় সময়কে বোঝায়।

পাইথন দিয়ে অমরা খুব সহজেই কোন একটি জায়গার সময় বের করে নিতে পারি

from datetime import datetime
import pytz

local_time = datetime.now()
print("Local Time :", local_time.strftime("%m-%d-%Y, %H:%M"))


karachi_time_zone = pytz.timezone('Asia/Karachi') 
karachi_time = datetime.now(karachi_time_zone)
print("Karachi Time :", karachi_time.strftime("%m-%d-%Y, %H:%M"))

# Output
# Local Time : 09-07-2022, 10:34
# Karachi Time : 09-07-2022, 09:34

 

Get All Time Zone List:

সকল টাইম জোনের লিস্ট পাবেন এখানে 

import pytz

for each_timezone in pytz.all_timezones :
    print(each_timezone)

# Output 

Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
.
.
.
US/Pacific
US/Samoa
UTC
Universal
W-SU
WET
Zulu

 

 

উদাহরন

Example-1

# get current time

from datetime import datetime

now = datetime.now()

current_time = now.strftime("%H:%M:%S")
print(f"Current Time = {current_time}")

Example-2

# Today , Tomorrrow, Yesterday 

import datetime 

today = datetime.date.today() 

yesterday = today - datetime.timedelta(days = 1) 
tomorrow = today + datetime.timedelta(days = 1) 
print(f'Yesterday : {yesterday.strftime("%b %d , %Y")}') 

print(f'Today : {today.strftime("%b %d , %Y")}') 
print(f'Tomorrow : {tomorrow.strftime("%b %d , %Y")}') 
print(type(today))

Example-3

from datetime import date
your_year = int(input("Enter your birth year : "))
year_diff = date.today().year - your_year

print(f"You are {year_diff} years old !")

Example-4

# import datetime module from datetime
from datetime import datetime
 

# format DD/MM/YY H:M:S
time_list = [
  "20/05/22 02:35:20", 
  "21/05/22 12:45:03",
  "22/05/22 07:35:05", 
  "23/05/22 05:15:59"
]
  
# format the string in this format : day/month/year hours/minutes/seconds
format_style = "%d/%m/%y %H:%M:%S"
 

for each_date in time_list:
    print(datetime.strptime(each_date, format_style))

Example-5

from datetime import datetime

any_date = "March 16 1996  11:20PM"
formatting = datetime.strptime(any_date, '%B %d %Y %I:%M%p')
print(formatting)

 

এসো নিজে করি
* ইউজার থেকে তার জন্ম তারিখ নিবেন এবং তার আজকের পর্যন্ত কত বয়স হল সেটি দেখাবেন
* ৫ মাস আগের ডেটটি প্রিন্ট করুন
* একটি ডিজিটাল ঘড়ি বানান ; স্ত্রিপ্টটি রান করলে কনসোলে দেখাবে
* ভোটিং সিস্টেম বানাবেন , ইউজার থেকে তার জন্ম তারিখ ( যেমন: ১৭-০৫-২০০২ ) নিবেন , এবং ইউজারটি ভোট দেয়ার উপযোক্ত বয়স হলে , ইয়েস আউটপুট এ দেখাবেন অথবা না হলে নো আউটপুট এ দেখাবেন
* বর্তমান সময় থেকে ১ মিনিট পরে একটি কাউন্টডাউন সিস্টেম বানান। ( ৫৯, ৫৮, ৫৭ ,….,০) এভাবে দেখাবে
ইন্টারভিউ প্রশ্নোত্তর
* timedelta() এই মেথড এর কাজ কি
* কিভাবে আজকের ডেট ( dd-mm-yyyy ) এই Format এ বের করতে পারবো ?
* strftime() এই মেথডটি কোন টাইপ অবজেক্ট এর উপর এপ্লাই করা যায় ?
* strptime & strftime মধ্যে পার্থক্য কি ?
* দিল্লির সময়ের সাথে আপনার সময়ের ব্যবধান কত হবে সেটি ঘন্টা এবং মিনিট আকারে প্রকাশ করুন