পাইথন "time" মডিউল ব্যবহার করে সময়ের তথ্য পড়ুন, রিপ্রেজেন্ট করুন এবং রিসেট করুন অনেকভাবে লাইব্রেরি প্রদান করে। ডেট, টাইম এবং ডেটটাইম পাইথনে একটি অবজেক্ট, তাই যখনই আমরা সেগুলোর ওপর কোনো অপারেশন করি, আসলে আমরা অবজেক্ট ম্যানিপুলেট করি, স্ট্রিং বা টাইমস্ট্যাম্প নয়।
এই বিভাগে আমরা "time" মডিউল নিয়ে আলোচনা করব যা আমাদেরকে টাইমের ওপর বিভিন্ন অপারেশন হ্যান্ডেল করতে দেয়।
time মডিউল "EPOCH" কনভেনশন অনুসরণ করে যা সময় শুরু হয়েছে সেই পয়েন্টকে নির্দেশ করে। ইউনিক্স সিস্টেমে "EPOCH" টাইম ১ জানুয়ারি, ১২:০০ অম, ১৯৭০ থেকে ২০৩৮ সালের পর্যন্ত।
আপনার সিস্টেমে EPOCH টাইম ভ্যালু জানতে, নিচের কোড টাইপ করুন:
>>> import time >>> time.gmtime(0)
আউটপুট
time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)
পাইথনে টিক (Tick) কী?
একটি টিক হলো একটি টাইম ইন্টারভাল যা একটি ফ্লোটিং-পয়েন্ট নম্বর হিসেবে সেকেন্ডের ইউনিটে মাপা হয়। কখনো কখনো আমরা ডে-লাইট সেভিং টাইম (DST) হিসেবে টাইম পাই, যেখানে ঘড়িটি গ্রীষ্মকালে ১ ঘন্টা এগিয়ে যায়, এবং শরতে আবার পেছনে চলে আসে।
পাইথন Time মডিউলের সবচেয়ে কমন ফাংশনগুলো:
১. time.time() ফাংশন
time() হলো time মডিউলের প্রধান ফাংশন। এটি epoch থেকে 경과한 সেকেন্ডের সংখ্যা ফ্লোটিং পয়েন্ট ভ্যালু হিসেবে মাপে।
সিনট্যাক্স
time.time()
উপরের ফাংশন প্রদর্শন করার প্রোগ্রাম:
import time
print("Number of seconds elapsed since the epoch are: ", time.time())
আউটপুট
Number of seconds elapsed since the epoch are: 1553262407.0398576
আমরা পাইথন time ফাংশন ব্যবহার করে দুটি পয়েন্টের মধ্যবর্তী এলেপ্সড ওয়াল-ক্লক টাইম ক্যালকুলেট করতে পারি।
নিচে ওয়াল ক্লক টাইম ক্যালকুলেট করার প্রোগ্রাম:
import time
start = time.time()
print("Time elapsed on working...")
time.sleep(0.9)
end = time.time()
print("Time consumed in working: ", end - start)
আউটপুট
Time elapsed on working... Time consumed in working: 0.9219651222229004
২. time.clock() ফাংশন
time.clock() ফাংশন প্রসেসর টাইম রিটার্ন করে। এটি পারফরম্যান্স টেস্টিং/বেঞ্চমার্কিং-এ ব্যবহৃত হয়।
সিনট্যাক্স
time.clock()
clock() ফাংশন প্রোগ্রামের নেওয়া সঠিক টাইম রিটার্ন করে এবং এর কাউন্টারপার্ট থেকে বেশি একুরেট।
উপরের দুটি টাইম ফাংশন (আলোচিত) ব্যবহার করে পার্থক্য বোঝাতে একটি প্রোগ্রাম লিখি:
import time
template = 'time()# {:0.2f}, clock()# {:0.2f}'
print(template.format(time.time(), time.clock()))
for i in range(5, 0, -1):
print('---Sleeping for: ', i, 'sec.')
time.sleep(i)
print(template.format(time.time(), time.clock()) )
আউটপুট
time()# 1553263728.08, clock()# 0.00 ---Sleeping for: 5 sec. time()# 1553263733.14, clock()# 5.06 ---Sleeping for: 4 sec. time()# 1553263737.25, clock()# 9.17 ---Sleeping for: 3 sec. time()# 1553263740.30, clock()# 12.22 ---Sleeping for: 2 sec. time()# 1553263742.36, clock()# 14.28 ---Sleeping for: 1 sec. time()# 1553263743.42, clock()# 15.34
৩. time.ctime() ফাংশন
time.time() ফাংশন ইনপুট হিসেবে "seconds since the epoch" নেয় এবং এটি লোকাল টাইম অনুযায়ী একটি হিউম্যান রিডেবল স্ট্রিং ভ্যালুতে অনুবাদ করে। কোনো আর্গুমেন্ট না পাস করলে, এটি কারেন্ট টাইম রিটার্ন করে।
import time
print('The current local time is:', time.ctime())
newtime = time.time() + 60
print('60 secs from now:', time.ctime(newtime))
আউটপুট
The current local time is: Fri Mar 22 19:43:11 2019 60 secs from now: Fri Mar 22 19:44:11 2019
৪. time.sleep() ফাংশন
time.sleep() ফাংশন কারেন্ট থ্রেডের এক্সিকিউশন নির্দিষ্ট সেকেন্ডের জন্য हाल্ট করে। আরও প্রিসাইজ স্লিপ টাইমের জন্য ফ্লোটিং পয়েন্ট ভ্যালু পাস করুন।
sleep() ফাংশন সেসব পরিস্থিতিতে ব্যবহার করা যায় যেখানে আমাদের একটি ফাইল ক্লোজ হয়ে যাওয়ার জন্য অপেক্ষা করতে হয় বা ডেটাবেস কমিট হওয়ার জন্য।
import time
# using ctime() to display present time
print("Time starts from: ", end="")
print(time.ctime())
# using sleep() to suspend execution
print('Waiting for 5 sec.')
time.sleep(5)
# using ctime() to show present time
print("Time ends at: ", end="")
print(time.ctime())
আউটপুট
Time starts from: Fri Mar 22 20:00:00 2019 Waiting for 5 sec. Time ends at: Fri Mar 22 20:00:05 2019
৫. time.struct_time ক্লাস
time.struct_time time মডিউলে একমাত্র ডেটা স্ট্রাকচার। এর একটি নেমড টাপল ইন্টারফেস রয়েছে এবং ইন্ডেক্স বা অ্যাট্রিবিউট নাম দিয়ে অ্যাক্সেসযোগ্য।
সিনট্যাক্স
time.struct_time
এই ক্লাস তখন কাজে আসে যখন আপনাকে একটি ডেটের নির্দিষ্ট ফিল্ড অ্যাক্সেস করতে হয়।
এই ক্লাস localtime(), gmtime() এর মতো অনেক ফাংশন প্রদান করে এবং struct_time অবজেক্ট রিটার্ন করে।
import time
print('Current local time:', time.ctime())
t = time.localtime()
print('Day of month:', t.tm_mday)
print('Day of week:', t.tm_wday)
print('Day of year:', t.tm_yday)
আউটপুট
Current local time: Fri Mar 22 20:10:25 2019 Day of month: 22 Day of week: 4 Day of year: 81
৬. time.strftime() ফাংশন
এই ফাংশন একটি টাপল বা struct_time সেকেন্ড আর্গুমেন্ট হিসেবে নেয় এবং প্রথম আর্গুমেন্টে স্পেসিফাইড ফরম্যাট অনুযায়ী একটি স্ট্রিং-এ কনভার্ট করে।
সিনট্যাক্স
time.strftime()
time.strftime() ফাংশন ইমপ্লিমেন্ট করার প্রোগ্রাম নিচে:
import time
now = time.localtime(time.time())
print("Current date time is: ", time.asctime(now))
print(time.strftime("%y/%m/%d %H:%M", now))
print(time.strftime("%a %b %d", now))
print(time.strftime("%c", now))
print(time.strftime("%I %p", now))
print(time.strftime("%Y-%m-%d %H:%M:%S %Z", now))
আউটপুট
Current date time is: Fri Mar 22 20:13:43 2019 19/03/22 20:13 Fri Mar 22 Fri Mar 22 20:13:43 2019 08 PM 2019-03-22 20:13:43 India Standard Time
পাইথনে টাইমজোন চেক করা
দুটি টাইম-প্রোপার্টি রয়েছে যা আপনাকে টাইমজোন ইনফো দেবে:
১. time.timezone
এটি লোকাল (non-DST) টাইমজোনের অফসেট UTC ফরম্যাটে রিটার্ন করে।
>>> time.timezone -19800
২. time.tzname – এটি একটি টাপল রিটার্ন করে যাতে লোকাল non-DST এবং DST টাইম জোন থাকে।
>>> time.tzname
('India Standard Time', 'India Daylight Time')