जवाबों:
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
और यह आपके समय को मिलीसेकंड में युग के बाद से आउटपुट करेगा।
date
GNU बन जाता है 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
।