जवाबों:
dateओएस एक्स में कार्यक्रम जीएनयू के coreutils तुलना में अलग है dateकार्यक्रम। आप कोरुटिल्स (ग्नू-डेट सहित) स्थापित कर सकते हैं, फिर आपके पास dateमिलिसेकंड का समर्थन करने वाला एक संस्करण होगा ।
जैसा कि स्रोत से इंस्टॉलेशन देशी OS X उपयोगकर्ताओं के लिए एक परेशानी हो सकती है, मैं आपको Homebrew का उपयोग करने की सलाह देता हूं ।
Homebrew का उपयोग करके इन उपकरणों को स्थापित करने के लिए इस टर्मिनल पर अपने टर्मिनल में चलाएं:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Homebrew अब स्थापित हो गया है (स्थापना के बाद इंस्टॉलर के सुझावों का पालन करना बुद्धिमान है)। अब हम का उपयोग कर coreutils स्थापित करेंगे brew।
brew install coreutils
जैसा कि अधिष्ठापन कहता है, सभी कमांड उपसर्ग 'जी' (उदाहरण के लिए gdate, gcat, gln, आदि) के साथ स्थापित किए गए हैं। यदि आपको वास्तव में इन आदेशों को उनके सामान्य नामों के साथ उपयोग करने की आवश्यकता है, तो आप अपने पेटीएम में "gnubin" निर्देशिका जोड़ सकते हैं ~/.bash_profile:
PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
अब आप चला सकते हैं
gdate +%s.%N
और यह आपके समय को मिलीसेकंड में युग के बाद से आउटपुट करेगा।
dateGNU बन जाता है date(gdate के बजाय)
+%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, फिर कमांड का प्रयास करें ... यह व्यवहार में एक असंभावित मामला है, लेकिन मैं कुछ ऐसा महसूस करूंगा जो पर्यावरण पर निर्भर नहीं था।
यह समाधान macOS पर काम करता है।
यदि आप बैश स्क्रिप्ट का उपयोग करने पर विचार करते हैं और अजगर उपलब्ध है, तो आप इस कोड का उपयोग कर सकते हैं:
#!/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।