পাইথনের মিলিসেকেন্ডে আমি কীভাবে বর্তমান সময় পেতে পারি?
time.time()
চেয়ে খারাপ নির্ভুলতা সরবরাহ করতে পারে datetime.utcnow()
।
পাইথনের মিলিসেকেন্ডে আমি কীভাবে বর্তমান সময় পেতে পারি?
time.time()
চেয়ে খারাপ নির্ভুলতা সরবরাহ করতে পারে datetime.utcnow()
।
উত্তর:
আমার যা প্রয়োজন, তার জন্য উপরের @ স্যাম্পেলবিয়ার মন্তব্যের ভিত্তিতে আমি যা করেছি তা এখানে:
import time
millis = int(round(time.time() * 1000))
print millis
Quick'n'easy। সকলকে ধন্যবাদ, মস্তিষ্কের উচ্ছ্বাসের জন্য দুঃখিত
পুনঃব্যবহারের জন্য:
import time
current_milli_time = lambda: int(round(time.time() * 1000))
তারপর:
>>> current_milli_time()
1378761833768
round
? মনে int(time.time() * 1000)
হচ্ছে যথেষ্ট?
.utcnow()
ব্যবহার GetSystemTimeAsFileTime()
করে । time.clock()
( QueryPerformanceCounter()
) এটি কমিয়ে দেওয়ার চেয়ে বেশি শব্দ প্রবর্তন করবে না ? দেখুন যথার্থ সঠিকতা হিসাবে একই নয় ।
time.time()
কেবলমাত্র দ্বিতীয়টিকে রেজোলিউশন দিতে পারে, মিলিসেকেন্ডগুলির জন্য পছন্দসই পদ্ধতি datetime
।
from datetime import datetime
dt = datetime.now()
dt.microsecond
def TimestampMillisec64():
return int((datetime.datetime.utcnow() - datetime.datetime(1970, 1, 1)).total_seconds() * 1000)
.total_seconds()
ভাল নির্ভুলতা তৈরি করার জন্য সূত্রটি ইনলাইন করতে পারেন : (td.microseconds + (td.seconds + td.days * 86400) * 10**6) / 10**3
(সত্য বিভাগটি সক্ষম করে) অথবা আপনি যদি মিলিসেকেন্ডগুলি কেটে ফেলতে চান তবে ব্যবহার করুন // 10**3
।
থেকে সংস্করণ 3.7 আপনি ব্যবহার করতে পারেন time.time_ns()
যুগান্তকারী থেকে পাশ ন্যানো সেকেন্ড সময় পাবেন। সুতরাং আপনি করতে পারেন
ms = time.time_ns() // 1000000
পূর্ণসংখ্যার হিসাবে মিলি-সেকেন্ডে সময় পেতে
আপনি যদি আপনার কোডটিতে এমন একটি সহজ পদ্ধতি চান যা তা ডেটটাইমের সাথে মিলিসেকেন্ডগুলি প্রদান করে:
from datetime import datetime
from datetime import timedelta
start_time = datetime.now()
# returns the elapsed milliseconds since the start of the program
def millis():
dt = datetime.now() - start_time
ms = (dt.days * 24 * 60 * 60 + dt.seconds) * 1000 + dt.microseconds / 1000.0
return ms
start_time
= ডেটটাইম (1970,1,1)
.utcnow()
পরিবর্তে ব্যবহার করুন বা আপনার যদি নিরঙ্কুশ সময় প্রয়োজন না হয় তবে আপনি ব্যবহার করতে পারেন time.monotonous()
। দ্রষ্টব্য: সত্যিকারের বিভাগ সক্ষম করার সাথে some_int + dt.microseconds/ 1000.0
সূত্রের মধ্যে ভাসমান-পয়েন্ট গণিতের কারণে একটি সূক্ষ্ম পার্থক্য রয়েছে ( ) / 10**3
। সম্পর্কিত উত্তরের সুস্পষ্ট সূত্র এবং লিঙ্কটিtotal_seconds()
যদি আপনি অতিবাহিত সময় পরিমাপ সম্পর্কে উদ্বিগ্ন হন তবে আপনার একঘেয়ে ঘড়িটি ব্যবহার করা উচিত (পাইথন 3) । এই ঘড়িটি সিস্টেমের ক্লক আপডেটগুলি দ্বারা প্রভাবিত হয় না যেমন আপনি দেখতে পাবেন যে কোনও এনটিপি কোয়েরি আপনার সিস্টেমের সময়টি সামঞ্জস্য করে কিনা।
>>> import time
>>> millis = round(time.monotonic() * 1000)
এটি সেকেন্ডে একটি রেফারেন্স সময় সরবরাহ করে যা অতিবাহিত সময় পরিমাপের জন্য পরে তুলনা করতে ব্যবহার করা যেতে পারে।
আপনি যদি আমার কোড ব্যবহার করেন (নীচে), সময়টি সেকেন্ডে প্রদর্শিত হবে, তারপরে, দশমিক, মিলিসেকেন্ডের পরে। আমি মনে করি যে উইন্ডোজ এবং ইউনিক্সের মধ্যে পার্থক্য রয়েছে - দয়া করে মন্তব্য করুন।
from time import time
x = time()
print(x)
আমার ফলাফল (উইন্ডোজে) ছিল:
1576095264.2682993
সম্পাদনা : কোনও পার্থক্য নেই :) ধন্যবাদ tc0nn
/usr/local/opt/python/bin/python3.7 scratch.py 1577212639.882543
python3 scratch.py 1577212763.9136133
মিলিসেকেন্ডের জন্য 1000 এ এই গুণগুলি সমাধান করা বা কিছু পূর্বশর্ত গ্রহণযোগ্য করার জন্য শালীন হতে পারে। এটি আপনার ডাটাবেসে কোনও শূন্যস্থান পূরণ করতে ব্যবহৃত হতে পারে যা এটি কখনও ব্যবহার করে না। যদিও, বাস্তব পরিস্থিতির জন্য যা যথাযথ সময় প্রয়োজন এটি শেষ পর্যন্ত ব্যর্থ হবে। আমি মিশন-সমালোচনামূলক ক্রিয়াকলাপগুলির জন্য কাউকে এই পদ্ধতিটি ব্যবহার করার পরামর্শ দেব না যার জন্য ক্রিয়াকলাপের প্রয়োজন হয় বা নির্দিষ্ট সময়ে প্রক্রিয়াজাতকরণ প্রয়োজন।
উদাহরণস্বরূপ: রাউন্ড-ট্রিপ পিংসগুলি মার্কিন যুক্তরাষ্ট্রে 30-80 মিমি অবধি রয়েছে ... আপনি কেবল এটি গোল করে দক্ষতার সাথে ব্যবহার করতে পারবেন না।
আমার নিজস্ব উদাহরণটি প্রতি দ্বিতীয় সেকেন্ডে টাস্কগুলির প্রয়োজন যার অর্থ প্রথম টাস্কগুলির প্রতিক্রিয়াটির পরে আমি যদি গোল করে ফেলি তবে আমি প্রসেসিংয়ের সময়টি প্রতিটি প্রধান লুপ চক্রকে গুণিত করতে পারি। এটি প্রতি 60 সেকেন্ডে মোট ফাংশন কল হয়ে শেষ হয়। এটি একটি দিনে 1440 ডলার .. খুব নির্ভুল নয়।
কেবলমাত্র এটি ব্যবহার করে না এমন একটি ডাটাবেস ফাঁক সমাধানের বাইরে আরও সঠিক যুক্তির সন্ধানের জন্য কেবল মানুষের চিন্তাভাবনা।
import time; ms = time.time()*1000.0