datetime মডিউল — Modules and Imports পাঠ অনুযায়ী স্ট্যান্ডার্ড লাইব্রেরি থেকে — তারিখ আর সময় নিয়ে কাজ করার Python-এর টুল।
from datetime import datetime
now = datetime.now()
print(now) # 2026-07-30 14:30:00.123456
print(now.strftime("%Y-%m-%d")) # "2026-07-30"
print(now.strftime("%d/%m/%Y")) # "30/07/2026"
print(now.strftime("%A, %B %d, %Y"))# "Thursday, July 30, 2026"| কোড | অর্থ |
|---|---|
| %Y | 4-সংখ্যার বছর |
| %m | 2-সংখ্যার মাস |
| %d | 2-সংখ্যার দিন |
| %H:%M:%S | ঘণ্টা:মিনিট:সেকেন্ড, 24-ঘণ্টা |
| %A | পুরো দিনের নাম |
| %B | পুরো মাসের নাম |
ফরম্যাট কোডের সম্পূর্ণ সেট আছে python.org-এ strftime() রেফারেন্সে।
from datetime import datetime
deadline = datetime(2026, 12, 31)
print(deadline.strftime("%Y-%m-%d")) # "2026-12-31"from datetime import datetime, timedelta
now = datetime.now()
deadline = datetime(2026, 12, 31)
difference = deadline - now
print(f"{difference.days} days remaining")
next_week = now + timedelta(days=7)
print(next_week.strftime("%Y-%m-%d"))timedelta একটি সময়ের ব্যাপ্তি বোঝায়, আর সরাসরি একটি datetime-এর সাথে যোগ বা বিয়োগ করা যায় — আলাদা কোনো "modify" মেথডের দরকার নেই।
strptime() হলো strftime()-এর বিপরীত — এটি একটি স্ট্রিং থেকে একটি তারিখ পড়ে, কী আকৃতি প্রত্যাশিত তা বলতে একই ফরম্যাট কোড ব্যবহার করে:
from datetime import datetime
text = "30/07/2026"
parsed = datetime.strptime(text, "%d/%m/%Y")
print(parsed.year) # 2026
print(parsed.month) # 7strptime() ফরম্যাট অনুমান করে না
ফরম্যাট স্ট্রিং ইনপুটের সাথে ঠিক মিলতে হবে, নাহলে strptime() একটি ValueError তোলে — "%Y-%m-%d" দিয়ে পার্স করা "30/07/2026" অনুমান করার বদলে সরাসরি ব্যর্থ হয়। টেক্সটটা আপনার পুরোপুরি নিয়ন্ত্রণ করা কোনো উৎসের বদলে একজন ব্যবহারকারীর থেকে এলে এটাকে try/except-এ মুড়িয়ে দিন।
ডিফল্টভাবে কোনো টাইম জোন নেই
Python-এ তারিখ আর সময় ডিফল্টভাবে "naive" — কোনো টাইম জোন যুক্ত নেই, সার্ভারের কনফিগার করা জোন স্বয়ংক্রিয়ভাবে ব্যবহার না করে। যেখানে পার্থক্যটা গুরুত্বপূর্ণ (বিভিন্ন অঞ্চল জুড়ে একটি নির্ধারিত ইভেন্ট), স্ট্যান্ডার্ড লাইব্রেরির zoneinfo মডিউল দেখুন।