উত্তর:
dateOS X এর প্রোগ্রাম গনুহ এর coreutils থেকে ভিন্ন dateপ্রোগ্রাম। আপনি কোর্টিলগুলি ইনস্টল করতে পারেন (gnu- তারিখ সহ), তারপরে আপনার কাছে এমন একটি সংস্করণ থাকবে dateযা মিলিসেকেন্ডগুলিকে সমর্থন করে।
উত্স থেকে ইনস্টলেশনটি স্থানীয় ওএস এক্স ব্যবহারকারীদের জন্য ঝামেলা হতে পারে আমি আপনাকে হোমব্রু ব্যবহার করার পরামর্শ দিচ্ছি ।
হোমব্রিউ ব্যবহার করে এই সরঞ্জামগুলি ইনস্টল করতে আপনার টার্মিনালে এই অনিলিনারটি চালান:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
হোমব্রিউ এখন ইনস্টল করা আছে (ইনস্টলেশনের পরে ইনস্টলারের পরামর্শ অনুসরণ করা বুদ্ধিমানের কাজ)। এখন আমরা ব্যবহার করে কোর্টিল ইনস্টল করব brew।
brew install coreutils
ইনস্টলেশনটি যেমন বলেছে, সমস্ত কমান্ডগুলি 'g' উপসর্গের সাথে ইনস্টল করা হয়েছে (উদাঃ gdate, gcat, gln, ইত্যাদি)। আপনার যদি এই কমান্ডগুলি তাদের সাধারণ নামগুলির সাথে ব্যবহার করতে প্রয়োজন হয়, আপনি আপনার PATH ( ~/.bash_profile) এর মতো একটি "gnubin" ডিরেক্টরি যুক্ত করতে পারেন:
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
আপনি এখন চালাতে পারেন
gdate +%s.%N
এবং এটি মিলিসেকেন্ডে সূচনাকালীন আপনার সময় আউটপুট দেবে।
dateপরিণত হয়েছে date(গ্যাডেটের পরিবর্তে)
+%s.%Nবিন্যাসটি সেকেন্ডগুলিকে ন্যানোসেকেন্ডের যথার্থতার জন্য দেয়, মিলিসেকেন্ডগুলিতে নয়। আমি ইনস্টল করার জন্য ব্রিউ ব্যবহার করার পরে gdate, মিলিসেকেন্ডগুলি উপলব্ধ কিনা তা দেখার জন্য আমি ম্যানপেজটি পরীক্ষা করেছিলাম। এটা না। এটি এও বলেনি যে একটি নির্ভুলতা %Nনির্দিষ্ট করা যেতে পারে তবে আমি তা যাইহোক চেষ্টা করেছিলাম। আমি দেখেছি যে কমান্ড মিলিসেকেন্ডে স্পষ্টতা শুধুমাত্র (অর্থাত, তিন দশমিক স্থান) হল নিচে সেকেন্ড পেতে gdate +%s.%3N।
ওএস এক্স-তে কেবল চালিত করুন date +%sযেমন ওএস এক্স dateএর আউটপুটে এর চেয়ে বেশি নির্ভুলতার পক্ষে সমর্থন করে না এবং অভ্যন্তরীণ উপস্থাপনার দ্বারা সমর্থিত কোনও অতিরিক্ত নির্ভুলতা বিয়োগ অনন্তের দিকে কেটে যায়।
যদি আপনি মিলি সেকেন্ড আউটপুট চান, আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করতে পারেন, যদিও আউটপুটটি পূর্বোক্ত কারণে সুনির্দিষ্টতা যোগ করার পরিবর্তে জিরো যুক্ত করে সঠিক করা হয়েছে। নিম্নলিখিতগুলিতে সিস্টেমগুলিতে সঠিক মিলিসেকেন্ডগুলি আউটপুট দেয় যা প্রয়োজনীয় নির্ভুলতা সমর্থন করে।
echo $(($(date +'%s * 1000 + %-N / 1000000')))
উপরের কমান্ডের উত্স: ইউনিক্স.এসই - ইউনিক্সের সূচনালগ্ন থেকে মিলিসেকেন্ডগুলি কীভাবে পাবেন
আপনি যদি কেবল একটি কমান্ড চান যা ওএস এক্স-তে সঠিক সংখ্যাটি শেরো সংযুক্ত করে, আপনি এটি ব্যবহার করতে পারেন:
date +%s000
%-N, যাতে এটি কিছুই করে না (এবং শেল ভেরিয়েবলটি $Nসেট করা থাকলে সমস্যা হতে পারে )। কেবল ব্যবহার করুন date +%s000(বা date +%s.000আপনি যদি দশমিক পয়েন্ট চান)।
dateকমান্ডটি কেবল এর মধ্য %-Nদিয়ে চলেছে N, এটি গণনায় হস্তক্ষেপ করতে পারে। সেটিং চেষ্টা করুন N=7000000000000000000, তারপরে কমান্ডটি চেষ্টা করুন ... এটি অনুশীলনের ক্ষেত্রে একটি অসম্ভব ঘটনা তবে পরিবেশের উপর নির্ভর করে না এমন কিছু বিষয় নিয়ে আমি নিজেকে নিরাপদ বোধ করব।
এই সমাধানটি ম্যাকোজে কাজ করে।
আপনি যদি ব্যাশ স্ক্রিপ্টটি ব্যবহার করে বিবেচনা করেন এবং পাইথন উপলব্ধ থাকে তবে আপনি এই কোডটি ব্যবহার করতে পারেন:
#!/bin/bash
python -c 'from time import time; print int(round(time() * 1000))'
অথবা pythonসরাসরি স্ক্রিপ্ট লিখুন :
#!/usr/bin/python
from time import time
print int(round(time() * 1000))
gdateইনস্টল করা হয়েছিল/usr/local/bin/gdate।