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 : Date from datetime import date some_date = date(2023,12,31) print(some_date) # Output 2023-12-31
datetime****ক্লাস তারিখের সাথে সময় নির্ণয়ের জন্য আমরা datetime ক্লাস ব্যবহার করবো , তার জন্য প্রথমে date time ক্লাসটিকে ইম্পোর্ট করে নিবো
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 ""
দুইটি সময়ের মধ্যে ব্যবধান বের করা
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 :
আজকের তারিখ থেকে ১০ দিন পরের তারিখ বের করা
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:
# formatted_date type:
_**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:
# Output # Local Time : 09-07-2022, 10:34 # Karachi Time : 09-07-2022, 09:34
আবার,
_**G**_ _**et**_ _**A**_ _**ll**_ _**T**_ _**ime**_ _**Z**_ _**one**_ _**L**_ _**ist:**_ _সকল টাইম জোনের লিস্ট পাবেন এখানে_ import pytz for each_timezone in pytz.all_timezones : print(each_timezone)
Output:
# 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 মধ্যে পার্থক্য কি ?
- দিল্লির সময়ের সাথে আপনার সময়ের ব্যবধান কত হবে সেটি ঘন্টা এবং মিনিট আকারে প্রকাশ করুন