পাইথনে তারিখ এবং সময় ম্যানিপুলেট করার জন্য ডেটটাইম নামে একটি মডিউল রয়েছে। তারিখ এবং সময় বস্তু দুই ধরনের আছে. ধরনগুলি নির্বোধ এবং সচেতন৷
৷নিষ্পাপ বস্তুতে, অন্যান্য তারিখ-সময় বস্তু থেকে এই বস্তুটিকে দ্ব্যর্থহীনভাবে সনাক্ত করার জন্য যথেষ্ট তথ্য নেই। এই পদ্ধতিতে এটি সমন্বয় ইউনিভার্সাল টাইম (UTC) ব্যবহার করে।
সচেতন টাইপ অবজেক্টগুলিতে অ্যালগরিদমিক এবং রাজনৈতিক সময় সমন্বয় সম্পর্কিত বিভিন্ন তথ্য রয়েছে। কিছু নির্দিষ্ট সময়ের মুহূর্ত উপস্থাপন করতে এই ধরনের বস্তু ব্যবহার করা হয়।
এই মডিউলটি ব্যবহার করতে, আমাদের এটি −
ব্যবহার করে আমদানি করা উচিতইমপোর্ট ডেটটাইম
এই মডিউলে বিভিন্ন শ্রেণী, ধ্রুবক এবং পদ্ধতি রয়েছে।
ধ্রুবক হল −
Sr.No. | ধ্রুবক এবং বর্ণনা |
---|---|
1 | তারিখ সময়।MINYEAR এটি সবচেয়ে ছোট বছরের সংখ্যা, যা তারিখ বা তারিখ সময় বস্তু হিসাবে প্রয়োগ করা যেতে পারে। মান হল 0 |
2 | তারিখ সময়।MAXYEAR এটি বৃহত্তম বছরের সংখ্যা, যা তারিখ বা তারিখ সময় বস্তু হিসাবে প্রয়োগ করা যেতে পারে। মান হল 9999 |
উপলব্ধ ডেটাটাইপগুলি হল −
৷Sr.No. | ডেটাটাইপ এবং বর্ণনা |
---|---|
1 | তারিখ এটি তারিখ টাইপ অবজেক্ট। এটি গ্রেগরিয়ান ক্যালেন্ডার ব্যবহার করে। এটিতে বছর, মাস, দিনের বৈশিষ্ট্য রয়েছে৷ |
2 | সময় এটি একটি টাইম অবজেক্ট ক্লাস। এটি কোনো বিশেষ দিনের থেকে স্বাধীন। এটিতে ঘন্টা, মিনিট, সেকেন্ড, মাইক্রোসেকেন্ড এবং tzinfo বৈশিষ্ট্য রয়েছে৷ |
3 | তারিখ সময় এটি তারিখ এবং সময়ের একটি সম্মিলিত সেট। |
4 | টাইমডেল্টা এটি মিলিসেকেন্ডে দুটি তারিখ, সময় বা তারিখ সময় মানের মধ্যে পার্থক্য প্রকাশ করতে ব্যবহৃত হয়। |
5 | tzinfo এটি একটি বিমূর্ত বেস ক্লাস। এটি সময় অঞ্চলের তথ্য ধারণ করে। এটি তারিখ সময় এবং সময় ক্লাস দ্বারা ব্যবহৃত হয়৷ |
6 | টাইমজোন এই ক্লাসে, এটি tzinfo প্রয়োগ করে। UTC থেকে একটি নির্দিষ্ট অফসেট আছে |
তারিখ প্রকার অবজেক্ট
তারিখ বস্তু একটি তারিখ প্রতিনিধিত্ব করে। তারিখে দিন, মাস এবং বছরের অংশ রয়েছে। এটি গ্রেগরিয়ান ক্যালেন্ডার ব্যবহার করে। এই ক্যালেন্ডার অনুসারে 1 সালের 1 জানুয়ারী দিনটিকে 1 নম্বর দিন হিসাবে ডাকা হয়, এবং তাই।
তারিখ সম্পর্কিত কিছু পদ্ধতি হল −
পদ্ধতি date.date(বছর, মাস, দিন)
এটি একটি তারিখ টাইপ অবজেক্ট তৈরি করতে কনস্ট্রাক্টর। একটি তারিখ তৈরি করতে, পূর্ণসংখ্যা টাইপ ডেটা হিসাবে সমস্ত আর্গুমেন্ট প্রয়োজন। বছরটি অবশ্যই MINYEAR এবং MAXYEAR এর মধ্যে হতে হবে। প্রদত্ত তারিখটি বৈধ না হলে, এটি ValueError বাড়াবে৷
৷পদ্ধতি date.today()
এই পদ্ধতিটি বর্তমান স্থানীয় তারিখ ফেরাতে ব্যবহৃত হয়।
পদ্ধতি date.fromtimestamp(টাইমস্ট্যাম্প)
এই পদ্ধতিটি POSIX টাইমস্ট্যাম্প থেকে তারিখ পেতে ব্যবহার করা হয়। যদি টাইমস্ট্যাম্পের মান পরিসীমার বাইরে থাকে, তাহলে এটি ওভারফ্লো ত্রুটি বাড়াবে।
পদ্ধতি date.fromordinal(ordinal)
এই পদ্ধতিটি প্রোলেপটিক গ্রেগরিয়ান ক্যালেন্ডার অর্ডিনাল থেকে তারিখ পেতে ব্যবহৃত হয়। এটি 1 জানুয়ারী 1 থেকে তারিখ গণনা থেকে তারিখ পেতে ব্যবহৃত হয়।
পদ্ধতি date.toordinal()
এই পদ্ধতিটি প্রলেপটিক গ্রেগরিয়ান ক্যালেন্ডার অর্ডিন্যালে তারিখ ফেরাতে ব্যবহৃত হয়।
পদ্ধতি date.weekday()
এই পদ্ধতিটি তারিখ থেকে একটি পূর্ণসংখ্যা হিসাবে সপ্তাহের তারিখ ফেরত দিতে ব্যবহৃত হয়। সোমবার হল 0, মঙ্গলবার হল 1 এবং আরও কিছু৷
৷পদ্ধতি date.isoformat()
এই পদ্ধতিটি একটি ISO 8601 ফর্ম্যাট স্ট্রিং হিসাবে তারিখ ফেরত দিতে ব্যবহৃত হয়। বিন্যাস হল YYYY-MM-DD।
উদাহরণ কোড
dtnew_date =dt.date(1998, 9, 5) হিসাবে তারিখের সময় আমদানি করুন (new_date.toordinal()))print("প্রদত্ত তারিখের সপ্তাহের দিন:" +str(new_date.weekday())) #Monday is 0my_date =dt.date.fromordinal(732698) #অর্ডিনাল মান থেকে একটি তারিখ তৈরি করুন .print("অর্ডিনাল থেকে তারিখ হল:" + str(my_date))td =my_date - new_date # একটি টাইমডেল্টা অবজেক্টপ্রিন্ট তৈরি করুন('td প্রকার:' + str(type(td)) + '\n পার্থক্য:' + str( td))
আউটপুট
তারিখ হল:1998-09-05প্রদত্ত তারিখের মূল মান:729637প্রদত্ত তারিখের সপ্তাহের দিন:5অর্ডিনাল থেকে তারিখ হল:2007-01-22td প্রকার:পার্থক্য:3061 দিন, 0:00:00
টাইম অবজেক্ট
সময় বস্তু একটি স্থানীয় সময় প্রতিনিধিত্ব করে। সময়ের মধ্যে ঘন্টা, মিনিট সেকেন্ড, মাইক্রোসেকেন্ড, জিনফো অংশ রয়েছে। ঘন্টা 0 থেকে 24 রেঞ্জের মধ্যে থাকবে এবং মিনিট এবং সেকেন্ড 0 থেকে 60 রেঞ্জের মধ্যে থাকবে এবং মাইক্রোসেকেন্ড 0 থেকে 1000000 রেঞ্জের মধ্যে থাকবে৷
কিছু সময় সম্পর্কিত পদ্ধতি হল
পদ্ধতি time.fromisoformat(time_string)
এই পদ্ধতিটি একটি ISO 8601 স্ট্রিং থেকে সময় পেতে ব্যবহৃত হয়। এটি time.isoformat() পদ্ধতির যে কোনো আউটপুট নিতে পারে।
মেথড time.replace(hour =self.hour, minute =self.minute, second =self.second, microsecond =self.microseconds, tzinfo =self.tzinfo, *fold=0)
এই পদ্ধতিটি আর্গুমেন্ট থেকে মান নিয়ে একটি সময় ফেরত দিতে ব্যবহৃত হয়। যদি কোনো আর্গুমেন্ট পাস না হয়, তাহলে এটি একই সময়ের অবজেক্টের মান ফিরিয়ে দেবে।
পদ্ধতি time.tzname()
এই পদ্ধতিটি সময় অঞ্চলের নাম ফেরাতে ব্যবহৃত হয়। যদি tzinfo কোনটি না হয়, তাহলে এটি কোনটিই ফেরত দেবে।
ডেটটাইম অবজেক্ট
datetime বস্তু তারিখ এবং সময় উভয়ই ধারণ করে। তারিখ অবজেক্ট হিসাবে, এটি গ্রেগরিয়ান ক্যালেন্ডারকে সমর্থন করে এবং টাইম অবজেক্ট হিসাবে এটি প্রতিটি দিনের জন্য ঠিক 3600*24 সেকেন্ড ধরে রাখে।
এটি তারিখ এবং সময় সম্পর্কিত সমস্ত পদ্ধতি সমর্থন করে, কিছু পদ্ধতি তারিখের জন্যও উপস্থিত রয়েছে। এগুলি −
এর মতপদ্ধতি datetime.now(tz=None)
বর্তমান তারিখ এবং সময় পেতে এই পদ্ধতি ব্যবহার করা হয়। যদি tz উপস্থিত না থাকে বা None না থাকে, তাহলে, এটি আজকের() পদ্ধতির মত তারিখ ফেরত দেবে।
পদ্ধতি datetime.utcnow()
এই পদ্ধতিটি বর্তমান UTC তারিখ এবং সময় সম্পর্কিত তথ্য পেতে ব্যবহৃত হয়।
strftime() এবং strptime() নামে আরও দুটি পদ্ধতি রয়েছে। এই পদ্ধতিগুলি তারিখ এবং সময় উভয় বস্তুর পাশাপাশি তারিখ সময় বস্তুর জন্য প্রযোজ্য৷
পদ্ধতি datetime.strftime(format[, t])
strftime() পদ্ধতিটি একটি tuple বা struct_time রূপান্তর করে যা একটি সময়কে প্রতিনিধিত্ব করে যা gmtime() বা localtime() দ্বারা প্রত্যাবর্তিত একটি স্ট্রিংয়ে ফর্ম্যাট আর্গুমেন্ট দ্বারা নির্দিষ্ট করা হয়েছে। যদি t প্রদান না করা হয়, স্থানীয় সময়() দ্বারা প্রত্যাবর্তিত বর্তমান সময় ব্যবহার করা হয়। বিন্যাস একটি স্ট্রিং হতে হবে। একটি ব্যতিক্রম ValueError উত্থাপিত হয় যদি t-এর কোনো ক্ষেত্র অনুমোদিত সীমার বাইরে থাকে।
পদ্ধতি datetime.strftime(format[, t])
পদ্ধতি strptime() একটি বিন্যাস অনুযায়ী একটি সময় প্রতিনিধিত্বকারী একটি স্ট্রিং পার্স করে। ফেরত মান হল একটি struct_time যেমন gmtime() বা localtime(). ফর্ম্যাট প্যারামিটার strftime() দ্বারা ব্যবহৃত একই নির্দেশাবলী ব্যবহার করে। এটি ডিফল্ট "%a %b %d %H:%M:%S %Y" যা ctime() দ্বারা প্রত্যাবর্তিত বিন্যাসের সাথে মেলে।
এই দুটি পদ্ধতি কিছু নির্দেশাবলী ব্যবহার করে। তাদের মধ্যে কিছু নীচে তালিকাভুক্ত করা হয়েছে -
Sr.No. | নির্দেশ ও বর্ণনা |
---|---|
1 | %A পুরো সপ্তাহের দিনের নাম |
2 | %B পুরো মাসের নাম |
3 | %d মাসের দিন (0 থেকে 31) |
4 | %S দ্বিতীয় |
5 | %G 4 সংখ্যার বছর, ISO সপ্তাহের সংখ্যার সাথে সম্পর্কিত |
6 | %m মাস (1 থেকে 12) |
7 | %M মিনিট |
8 | %T বর্তমান সময়, %H:%M:%S এর সমান |
9 | %W চলতি বছরের সপ্তাহের সংখ্যা, প্রথম সপ্তাহের প্রথম দিন হিসেবে প্রথম সোমবার থেকে শুরু হয় |
10 | %w দশমিক হিসাবে সপ্তাহের দিন, রবিবার=0 |
11 | %Y শতাব্দী সহ বছর |
12 | %Z বা %z সময় অঞ্চল বা নাম বা সংক্ষিপ্ত রূপ |
উদাহরণ কোড
ডেটটাইম dtmy_date1 =dt.datetime(2015, 1, 4) হিসাবে আমদানি করুন #তারিখ 4th জানুয়ারী, 2015print(my_date1)print('সেই দিনের সপ্তাহের দিন ছিল:' + my_date1.strftime('%A') )my_date2 =dt.datetime.strptime('August-15-2017', '%B-%d-%Y') #তারিখ সংরক্ষণ করা হচ্ছে 15ই আগস্ট, 2017প্রিন্ট(my_date2)প্রিন্ট ('সেই দিনের সপ্তাহের দিন ছিল:' + my_date2.strftime('%A'))প্রিন্ট('দুই দিনের মধ্যে পার্থক্য:' + str(abs(my_date1 - my_date2)))
আউটপুট
2015-01-04 00:00:00সেই দিনের সাপ্তাহিক দিনটি ছিল:রবিবার2017-08-15 00:00:00সেই দিনের সপ্তাহের দিনটি ছিল:মঙ্গলবারদুটি দিনের মধ্যে পার্থক্য:954 দিন, 0:00:00প্রে>