পাইথনে তারিখ পরিচালনা
এই নিবন্ধটি পাইথনে তারিখ পরিচালনা ব্যাখ্যা করে।
YouTube Video
পাইথনে তারিখ পরিচালনা
পাইথনে তারিখ পরিচালনার জন্য মূলত datetime
মডিউল ব্যবহৃত হয়। এই মডিউলটি তারিখ ও সময় পরিচালনার জন্য বিভিন্ন ক্লাস এবং ফাংশন সরবরাহ করে।
নীচে datetime
মডিউল ব্যবহারের কিছু প্রাথমিক তারিখ পরিচালনার উদাহরণ দেওয়া হল।
তারিখ এবং সময় পাওয়া
আপনি নিম্নলিখিতভাবে বর্তমান তারিখ এবং সময় পেতে পারেন। datetime.now()
এবং datetime.today()
প্রায় একই ফলাফল প্রদান করে, তবে তারা টাইম জোন ব্যবহারে কিছু পার্থক্য থাকতে পারে।
1from datetime import datetime
2
3# Get the current date and time
4now = datetime.now()
5print(f"Current date and time: {now}")
6
7# Get today's date only
8today = datetime.today()
9print(f"Today's date: {today.date()}")
- এই কোডটি বর্তমান তারিখ ও সময় এবং শুধুমাত্র আজকের তারিখ বের করে এবং দেখায়।
সুনির্দিষ্ট তারিখ এবং সময় তৈরি করা
আপনি নির্দিষ্ট একটি তারিখ ও সময় নিম্নলিখিতভাবে তৈরি করতে পারেন।
1from datetime import datetime
2
3# Create a specific date and time
4specific_date = datetime(2023, 11, 7, 10, 30, 45)
5print(f"Specified date and time: {specific_date}")
- এই কোডটি নির্দিষ্ট তারিখ ও সময় (৭ নভেম্বর, ২০২৩, ১০:৩০:৪৫) তৈরি করে এবং দেখায়।
তারিখ ফরম্যাট করা
তারিখ ফরম্যাটিং নিম্নরূপে করা যেতে পারে।
1from datetime import datetime
2
3now = datetime.now()
4
5# Format the date
6formatted_date = now.strftime("%Y-%m-%d %H:%M:%S")
7print(f"Formatted date and time: {formatted_date}")
- এই কোডটি বর্তমান তারিখ ও সময় নেয়,
strftime
ব্যবহার করে নির্দিষ্ট ফরম্যাটে ফরম্যাট করে এবং দেখায়।
তারিখ ফরম্যাট স্ট্রিংসমূহ
%Y
: বছর (৪ সংখ্যায়)%m
: মাস (০১ থেকে ১২)%d
: দিন (০১ থেকে ৩১)%H
: ঘণ্টা (০০ থেকে ২৩)%M
: মিনিট (০০ থেকে ৫৯)%S
: সেকেন্ড (০০ থেকে ৫৯)
তারিখ স্ট্রিং বিশ্লেষণ
আপনি একটি তারিখ উপস্থাপনকারী স্ট্রিংকে datetime
অবজেক্টে রূপান্তর করতে পারেন।
1from datetime import datetime
2
3date_string = "2023-11-07 10:30:45"
4parsed_date = datetime.strptime(date_string, "%Y-%m-%d %H:%M:%S")
5print(f"Parsed date and time: {parsed_date}")
- এই কোডটি তারিখ হিসেবে স্ট্রিংকে
strptime()
ব্যবহার করেdatetime
অবজেক্টে রূপান্তর করে এবং দেখায়।
তারিখের গাণিতিক গণনা
তারিখের গাণিতিক হিসাব নিম্নরূপে করা যায়।
1from datetime import datetime, timedelta
2
3now = datetime.now()
4
5# Date for one day later
6tomorrow = now + timedelta(days=1)
7print(f"Date for one day later: {tomorrow}")
8
9# Date for one week ago
10last_week = now - timedelta(weeks=1)
11print(f"Date for one week ago: {last_week}")
12
13# Time for two hours later
14in_two_hours = now + timedelta(hours=2)
15print(f"Time for two hours later: {in_two_hours}")
- এই কোডটি
timedelta
ব্যবহার করে বর্তমান তারিখ ও সময় থেকে দিন ও সময় যোগ বা বিয়োগ করে, আগামীকাল, এক সপ্তাহ আগে, এবং দুই ঘণ্টা পরে তারিখ ও সময় গণনা করে এবং দেখায়।
টাইম জোন ব্যবস্থাপনা
datetime
মডিউল ব্যবহার করে আপনি টাইম জোনও পরিচালনা করতে পারেন।
1from datetime import datetime, timezone, timedelta
2
3# Current UTC time
4utc_now = datetime.now(timezone.utc)
5print(f"Current UTC time: {utc_now}")
6
7# JST (UTC+9)
8jst = timezone(timedelta(hours=9))
9jst_now = datetime.now(jst)
10print(f"Current JST time: {jst_now}")
datetime
ডিফল্টভাবে ‘naive datetime’ (টাইম জোন তথ্য ছাড়া) ফেরত দেয়। আপনি স্পষ্টভাবে টাইম জোন পরিচালনা করতেtimezone
ক্লাস বাzoneinfo
ব্যবহার করতে পারেন।
date ক্লাস এবং time ক্লাস
datetime
মডিউল দিয়ে শুধুমাত্র তারিখ বা শুধুমাত্র সময়ও পরিচালনা করা যায়।
1from datetime import date, time
2
3d = date(2023, 11, 7)
4t = time(10, 30, 45)
5
6print(f"Date only: {d}")
7print(f"Time only: {t}")
date
ক্লাস শুধুমাত্র তারিখ পরিচালনা করে, এবংtime
ক্লাস শুধুমাত্র সময় পরিচালনা করে।
datetime
এবং timestamp
এর মধ্যে রূপান্তর
UNIX টিমস্ট্যাম্প এবং datetime
অবজেক্টের মধ্যে রূপান্তর সম্ভব। এখানে, UNIX টাইমস্ট্যাম্প মানে হল ১ জানুয়ারি, ১৯৭০ থেকে অতিক্রান্ত সেকেন্ডের সংখ্যা।
1from datetime import datetime
2
3now = datetime.now()
4
5# datetime → timestamp
6timestamp = now.timestamp()
7print(f"Timestamp: {timestamp}")
8
9# timestamp → datetime
10restored = datetime.fromtimestamp(timestamp)
11print(f"Restored datetime: {restored}")
- এই কোডটি বর্তমান তারিখ ও সময়কে UNIX টাইমস্ট্যাম্পে রূপান্তর করে, তারপর
fromtimestamp()
ফাংশন ব্যবহার করে সেই টাইমস্ট্যাম্প পুনরায়datetime
অবজেক্টে রূপান্তর করে।
সাধারণ ভুল
datetime
মডিউল ব্যবহার করার সময় আপনাকে নিম্নলিখিত বিষয়গুলো মনে রাখা উচিত।
datetime.now()
টাইম জোন বিবেচনা করে না, তাই আন্তর্জাতিককরণের জন্য আপনাকে স্পষ্টভাবেtimezone.utc
ব্যবহার করতে হবে।- ফরম্যাট স্ট্রিংয়ে
%m
(মাস) এবং%M
(মিনিট) যেন বিভ্রান্তি না হয়, সে বিষয়ে সতর্ক থাকুন।
সারসংক্ষেপ
datetime
মডিউল তারিখ এবং সময় পরিচালনার জন্য আরও অনেক বৈশিষ্ট্য প্রদান করে। তদুপরি, date
, time
, এবং timedelta
এর মতো ক্লাসও পাওয়া যায়, যা সুনির্দিষ্ট অপারেশনের জন্য বিশেষভাবে প্রস্তুত।
অন্যান্য লাইব্রেরি ব্যবহার করলে আরও উন্নত তারিখ পরিচালনাও সম্ভব হয়। উদাহরণস্বরূপ, pandas
টাইম সিরিজ ডেটা পরিচালনায় বিশেষজ্ঞ, আর dateutil
জটিল তারিখ পার্সিংয়ের জন্য উপযোগী। এছাড়াও, arrow
লাইব্রেরিটিও খুবই উপকারী।
আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।