ভূমিকা
পাইথন বিভিন্ন ধরণের দরকারী বস্তু নিয়ে আসে যা বাক্সের বাইরে ব্যবহার করা যেতে পারে। তারিখ বস্তু যেমন বস্তুর উদাহরণ. তারিখ এবং সময়ের জটিলতার কারণে, তারিখের ধরনগুলি স্ক্র্যাচ থেকে পরিচালনা করা কঠিন। যাইহোক, পাইথন তারিখ অবজেক্টগুলি তারিখগুলিকে পছন্দসই স্ট্রিং ফর্ম্যাটে রূপান্তর করা অত্যন্ত সহজ করে তোলে।
তারিখ বিন্যাস করা একটি সাধারণ কাজ যেটি আপনি একজন প্রোগ্রামার হিসাবে মুখোমুখি হবেন এবং শেষ ব্যবহারকারীদের সাথে সঠিকভাবে তারিখগুলি যোগাযোগ করা, যদি আপনার অ্যাপ্লিকেশন তাদের প্রকাশ করে, এটি UX-এর একটি গুরুত্বপূর্ণ অংশ।
বিশ্বের বিভিন্ন অঞ্চলে তারিখ/সময়ের প্রতিনিধিত্ব করার বিভিন্ন উপায় রয়েছে, তাই একজন প্রোগ্রামার হিসাবে আপনার লক্ষ্য হল তারিখের মানগুলি এমনভাবে উপস্থাপন করা যা ব্যবহারকারীদের কাছে পাঠযোগ্য।
উদাহরণস্বরূপ, আপনাকে "02-23-2023" এর মতো সংখ্যাগতভাবে একটি তারিখের মান উপস্থাপন করতে হতে পারে। ফ্লিপ সাইডে, আপনাকে "ফেব্রুয়ারি 23, 2023" এর মতো দীর্ঘ পাঠ্য বিন্যাসে একই তারিখের মান লিখতে হতে পারে। অন্য একটি পরিস্থিতিতে, আপনি একটি সংখ্যাগতভাবে গঠিত তারিখ মান থেকে স্ট্রিং বিন্যাসে মাসটি বের করতে চাইতে পারেন।
এই নিবন্ধে, আমরা বিভিন্ন ধরণের তারিখের বস্তুর কার্যকারিতা সহ অধ্যয়ন করব।
তারিখ সময় মডিউল
পাইথনের datetime
মডিউলটিতে এমন পদ্ধতি রয়েছে যা তারিখ এবং সময়ের মানগুলির সাথে কাজ করতে ব্যবহার করা যেতে পারে। এই মডিউলটি ব্যবহার করতে, আমরা প্রথমে এটি এর মাধ্যমে আমদানি করি import
নিম্নরূপ বিবৃতি:
import datetime
আমরা ব্যবহার করে সময়ের মান উপস্থাপন করতে পারি time
ক্লাস জন্য গুণাবলী time
ক্লাসে ঘন্টা, মিনিট, সেকেন্ড এবং মাইক্রোসেকেন্ড অন্তর্ভুক্ত।
বিঃদ্রঃ: জন্য যুক্তি time
ক্লাস ঐচ্ছিক। যদিও আপনি যদি কোনো যুক্তি নির্দিষ্ট না করেন তবে আপনি 0 এর একটি সময় ফিরে পাবেন, যা আপনার বেশিরভাগ সময় প্রয়োজন হওয়ার সম্ভাবনা কম।
উদাহরণস্বরূপ, আপনি ব্যবহার করে 1 ঘন্টা, 10 মিনিট, 20 সেকেন্ড এবং 13 মাইক্রোসেকেন্ডের মান সহ একটি টাইম অবজেক্ট শুরু করতে পারেন:
t = datetime.time(1, 10, 20, 13)
সময় দেখতে, আসুন ব্যবহার করা যাক print
ফাংশন:
print(t)
ক্ষেত্রগুলি বের করতে, যেমন ঘন্টা, মিনিট, সেকেন্ড বা মাইক্রোসেকেন্ড - আপনি যথাক্রমে প্রতিটি ক্ষেত্র অ্যাক্সেস করতে পারেন:
print('hour:', t.hour)
উপরের সময়ের জন্য মিনিট, সেকেন্ড এবং মাইক্রোসেকেন্ডগুলি নিম্নরূপ পুনরুদ্ধার করা যেতে পারে:
print('Minutes:', t.minute)
print('Seconds:', t.second)
print('Microsecond:', t.microsecond)
ক্যালেন্ডার তারিখের মান এর মাধ্যমে উপস্থাপন করা যেতে পারে date
ক্লাস দৃষ্টান্তে বছর, মাস এবং দিনের জন্য বৈশিষ্ট্য থাকবে।
আমাদের কল করা যাক today()
আজকের তারিখ দেখার পদ্ধতি:
import datetime
today = datetime.date.today()
print(today)
কোডটি আজকের তারিখটি ফেরত দেবে, তাই আপনি যে আউটপুটটি দেখছেন তা নির্ভর করবে আপনি যেদিন উপরের স্ক্রিপ্টটি চালাবেন তার উপর।
এখন এর কল করা যাক ctime
অন্য বিন্যাসে তারিখ প্রিন্ট করার পদ্ধতি:
print('ctime:', today.ctime())
সার্জারির ctime
পদ্ধতিটি আমরা আগে দেখা উদাহরণগুলির চেয়ে দীর্ঘ তারিখ-সময় বিন্যাস ব্যবহার করে। এই পদ্ধতিটি প্রাথমিকভাবে ইউনিক্স-টাইম (1লা জানুয়ারী, 1970 সাল থেকে সেকেন্ডের সংখ্যা) একটি স্ট্রিং ফর্ম্যাটে রূপান্তর করার জন্য ব্যবহৃত হয়।
এবং এখানে কিভাবে আমরা ব্যবহার করে বছর, মাস এবং দিন প্রদর্শন করতে পারি date
শ্রেণী:
print('Year:', today.year)
print('Month:', today.month)
print('Day :', today.day)
এর ফলে:
Year: 2022
Month: 9
Day : 15
তারিখগুলিকে স্ট্রিংসে রূপান্তর করা হচ্ছে strftime()
এখন যেহেতু আপনি জানেন কিভাবে তারিখ এবং সময় অবজেক্ট তৈরি করতে হয়, আসুন আমরা শিখি কিভাবে সেগুলিকে আরও পঠনযোগ্য স্ট্রিংগুলিতে ফর্ম্যাট করা যায়।
এই অর্জন করতে, আমরা ব্যবহার করা হবে strftime()
পদ্ধতি এই পদ্ধতি আমাদের ডেট অবজেক্টকে পঠনযোগ্য স্ট্রিংয়ে রূপান্তর করতে সাহায্য করে। নিম্নলিখিত সিনট্যাক্সে দেখানো হিসাবে এটি দুটি পরামিতি নেয়:
time.strftime(format, t)
প্রথম প্যারামিটারটি ফরম্যাট স্ট্রিং, যখন দ্বিতীয় প্যারামিটারটি ফরম্যাট করার সময়, যা ঐচ্ছিক।
এই পদ্ধতিটিও এ ব্যবহার করা যেতে পারে datetime
বস্তু সরাসরি, নিম্নলিখিত উদাহরণে দেখানো হয়েছে:
import datetime
x = datetime.datetime(2022, 9, 15)
print(x.strftime("%b %d %Y %H:%M:%S"))
সেরা-অভ্যাস, শিল্প-স্বীকৃত মান এবং অন্তর্ভুক্ত চিট শীট সহ গিট শেখার জন্য আমাদের হ্যান্ডস-অন, ব্যবহারিক গাইড দেখুন। গুগলিং গিট কমান্ড এবং আসলে বন্ধ করুন শেখা এটা!
তারিখ বিন্যাস করতে আমরা নিম্নলিখিত অক্ষর স্ট্রিং ব্যবহার করেছি:
%b
: মাসের নামের প্রথম তিনটি অক্ষর প্রদান করে। আমাদের উদাহরণে, এটি "সেপ্টেম্বর" ফিরিয়ে দিয়েছে।%d
: মাসের দিন রিটার্ন করে, 1 থেকে 31 পর্যন্ত। আমাদের উদাহরণে, এটি "15" রিটার্ন করে।%Y
: চার অঙ্কের বিন্যাসে বছর দেখায়। আমাদের উদাহরণে, এটি "2022" ফিরিয়ে দিয়েছে।%H
: ঘণ্টা রিটার্ন করে। আমাদের উদাহরণে, এটি "00" ফিরিয়ে দিয়েছে।%M
: মিনিট রিটার্ন করে, 00 থেকে 59 পর্যন্ত। আমাদের উদাহরণে, এটি "00" রিটার্ন করে।%S
: দ্বিতীয়টি প্রদান করে, 00 থেকে 59 পর্যন্ত। আমাদের উদাহরণে, এটি "00" প্রদান করে।
আমরা একটি সময় পাস করিনি, তাই সময়ের মান সবই "00"। নিম্নলিখিত উদাহরণটি দেখায় যে কীভাবে সময়টি ফর্ম্যাট করা যেতে পারে:
import datetime
x = datetime.datetime(2022, 9, 15, 12, 45, 35)
print(x.strftime("%b %d %Y %H:%M:%S"))
সম্পূর্ণ অক্ষর কোড তালিকা
উপরে দেওয়া অক্ষর স্ট্রিং ছাড়া অন্য, strftime
পদ্ধতি তারিখ মান বিন্যাস করার জন্য বিভিন্ন নির্দেশাবলী লাগে:
%a
: সপ্তাহের দিনের প্রথম তিনটি অক্ষর প্রদান করে, যেমন বুধ৷%A
: সপ্তাহের দিনের পুরো নাম দেখায়, যেমন বুধবার।%B
: মাসের পুরো নাম দেখায়, যেমন সেপ্টেম্বর।%w
: সপ্তাহের দিনকে একটি সংখ্যা হিসাবে দেখায়, 0 থেকে 6 পর্যন্ত, রবিবার 0 সহ।%m
: 01 থেকে 12 পর্যন্ত একটি সংখ্যা হিসাবে মাস দেখায়।%p
: সময়ের জন্য AM/PM ফেরত দেয়।%y
: দুই অঙ্কের বিন্যাসে, অর্থাৎ শতক ছাড়াই বছর ফেরত দেয়। উদাহরণস্বরূপ, "18" এর পরিবর্তে "2018"।%f
: 000000 থেকে 999999 পর্যন্ত মাইক্রোসেকেন্ড প্রদান করে।%Z
: টাইমজোন প্রদান করে।%z
: UTC অফসেট প্রদান করে।%j
: 001 থেকে 366 পর্যন্ত বছরের দিনের সংখ্যা প্রদান করে।%W
: বছরের সপ্তাহের সংখ্যা দেখায়, 00 থেকে 53 পর্যন্ত, সোমবার সপ্তাহের প্রথম দিন হিসাবে গণনা করা হয়৷%U
: বছরের সপ্তাহের সংখ্যা দেখায়, 00 থেকে 53 পর্যন্ত, রবিবারকে প্রতি সপ্তাহের প্রথম দিন হিসাবে গণনা করা হয়৷%c
: স্থানীয় তারিখ এবং সময়ের সংস্করণ প্রদান করে।%x
: তারিখের স্থানীয় সংস্করণ প্রদান করে।%X
: সময়ের স্থানীয় সংস্করণ প্রদান করে।
নিম্নলিখিত উদাহরণ বিবেচনা করুন:
import datetime
x = datetime.datetime(2022, 9, 15)
print(x.strftime('%b/%d/%Y'))
এবং এখানে আপনি কিভাবে শুধুমাত্র মাস পেতে পারেন:
print(x.strftime('%B'))
আমাদের বছর প্রদর্শন করা যাক:
print(x.strftime('%Y'))
এই উদাহরণে আমরা ফরম্যাট কোড ব্যবহার করেছি %Y
. লক্ষ্য করুন যে Y
বড় হাতের অক্ষরে আছে। এখন ছোট হাতের অক্ষরে লিখুন:
print(x.strftime('%y'))
আপনি দেখতে পাচ্ছেন, এই ফর্ম্যাটিং কোডগুলির সাহায্যে আপনি আপনার পছন্দ মতো যে কোনও ফর্মে তারিখ-সময় উপস্থাপন করতে পারেন।
স্ট্রিংগুলিকে strptime দিয়ে তারিখে রূপান্তর করা হচ্ছে
সার্জারির strftime()
পদ্ধতি আমাদের ডেট অবজেক্টকে আরও পঠনযোগ্য স্ট্রিংয়ে রূপান্তর করতে সাহায্য করেছে। দ্য strptime()
পদ্ধতিটি বিপরীত করে, অর্থাৎ, এটি স্ট্রিং নেয় এবং তাদের তারিখের বস্তুতে রূপান্তর করে যা পাইথন বুঝতে পারে।
আপনি যখন একটি স্ট্রিং-ফরম্যাটেড তারিখ পান, এবং এটিকে একটি ভিন্ন স্ট্রিং-ফরম্যাটেড তারিখে রূপান্তর করতে চান তখন এটি কার্যকর। একটি মধ্যস্থতাকারী ডেটটাইম অবজেক্টে রূপান্তর করার মাধ্যমে, আপনি একটি পার্স করা কাঠামোতে অ্যাক্সেস লাভ করেন যা অন্য কোনো বিন্যাসে পুনরায় ফর্ম্যাট করা যেতে পারে।
এখানে পদ্ধতির জন্য সিনট্যাক্স আছে:
datetime.strptime(string, format)
সার্জারির string
প্যারামিটার হল স্ট্রিং ফরম্যাটের মান যা আমরা তারিখ বিন্যাসে রূপান্তর করতে চাই। দ্য format
প্যারামিটার হল নির্দেশিকা যা রূপান্তরের পরের তারিখের মধ্যে নেওয়া ফরম্যাটটি নির্দিষ্ট করে।
উদাহরণস্বরূপ, ধরা যাক আমাদের “9/15/22” স্ট্রিংটিকে a-তে রূপান্তর করতে হবে datetime
অবজেক্ট।
এর আগে আমদানি করা যাক datetime
মডিউল:
from datetime import datetime
তারপরে আমরা একটি স্ট্রিং আকারে তারিখটি সংজ্ঞায়িত করতে পারি:
str = '9/15/22'
পাইথন উপরের স্ট্রিংটিকে ডেটটাইম হিসাবে বুঝতে সক্ষম হবে না যতক্ষণ না আমরা এটিকে বাস্তবে রূপান্তর করি datetime
বস্তু আমরা সফলভাবে কল করে তা করতে পারি strptime
পদ্ধতি।
স্ট্রিং রূপান্তর করতে নিম্নলিখিত কমান্ডটি চালান:
date_object = datetime.strptime(str, '%m/%d/%y')
এর এখন কল করা যাক print
স্ট্রিং প্রদর্শন করার জন্য ফাংশন datetime
বিন্যাস:
print(date_object)
আপনি দেখতে পারেন, রূপান্তর সফল হয়েছে!
আপনি এখন এই তারিখ বস্তুটিকে অন্য কোনো স্ট্রিং বিন্যাসে রূপান্তর করতে পারেন।
বিভিন্ন বিভাজক হ্যান্ডেল করা তাদের ফর্ম্যাট স্ট্রিং-এ ব্যবহার করার মতোই সহজ:
from datetime import datetime
str = '9-15-22'
date_object = datetime.strptime(str, '%m-%d-%y')
print(date_object)
উপসংহার
এই নিবন্ধে, আমরা পাইথনে তারিখগুলি কীভাবে ফর্ম্যাট করতে হয় তা অধ্যয়ন করেছি। আমরা দেখেছি কিভাবে datetime
Python-এর মডিউল তারিখ এবং সময়ের মান পরিবর্তনের জন্য ব্যবহার করা যেতে পারে। মডিউলটিতে বেশ কয়েকটি ক্লাস রয়েছে যা এই উদ্দেশ্যে ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, দ time
ক্লাস সময় মান উপস্থাপন করতে ব্যবহৃত হয় যখন date
ক্লাস ক্যালেন্ডার তারিখের মান উপস্থাপন করতে ব্যবহৃত হয়।