विराम चिह्न के बिना वर्तमान दिनांक और समय प्रदर्शित करें


118

उदाहरण के लिए, मैं वर्तमान प्रारूप और समय को निम्न प्रारूप के रूप में प्रदर्शित करना चाहता हूं:

yyyymmddhhmmss 

मैं उसको कैसे करू? इसके साथ लगती है सबसे दिनांक स्वरूप आता है की तरह -, /, :, आदि

जवाबों:


170

हेयर यू गो:

date +%Y%m%d%H%M%S

जैसा man dateकि शीर्ष के पास है, आप dateइस तरह से कमांड का उपयोग कर सकते हैं :

date [OPTION]... [+FORMAT]

यही है, आप इसे एक प्रारूप पैरामीटर दे सकते हैं, एक से शुरू +। आप शायद मेरे द्वारा उपयोग किए गए प्रारूपण प्रतीकों का अर्थ अनुमान लगा सकते हैं:

  • %Y वर्ष के लिए है
  • %m महीने के लिए है
  • %d दिन के लिए है
  • ... और इसी तरह

आप इसे और अन्य स्वरूपण प्रतीकों में पा सकते हैं man date


36

शेल स्क्रिप्ट में एक सरल उदाहरण

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

विराम चिह्न के साथ: - +% Y% m% d% H% M% S
विराम चिह्न के साथ: - +% Y-% m-% d% H:% M:% S


2
"`date +%Y-%m-%d %H:%M:%S`"मुझे एकdate: illegal time format
सिनक्स

6

यदि आप बैश का उपयोग कर रहे हैं तो आप निम्न में से किसी एक कमांड का उपयोग कर सकते हैं:

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the shell was invoked

आप -v varnameपरिणाम को स्टोर करने के $varnameबजाय उसे स्टडआउट करने के लिए स्टोर करने के विकल्प का उपयोग कर सकते हैं :

printf -v varname '%(%Y%m%d%H%M%S)T'

जबकि तिथि कमांड हमेशा एक उपधारा में निष्पादित की जाएगी (यानी एक अलग प्रक्रिया में) प्रिंटफ एक अंतर्निहित कमांड है और इसलिए तेजी से होगा।


जो भी %विकल्प आप पास कर सकते हैं, उस पर आगे के दस्तावेज की तलाश में, यह dateकमांड का उपयोग करता प्रतीत होता है । तो, man dateआपको उपलब्ध विकल्प देगा।
इलेक्ट्रोविर

4

विराम चिह्न के बिना (जैसा कि @Burusothman ने उल्लेख किया है):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

ओ / पी:

20170115072120

विराम चिह्न के साथ :

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;

ओ / पी:

2017-01-15 07:25:33

0

पैरामीटर विस्तार (आवश्यकता bash 4.4या नए) का उपयोग करके ऐसा करने का दिलचस्प / मज़ेदार तरीका :

${parameter@operator} - P operator

विस्तार एक स्ट्रिंग है जो पैरामीटर के मान का विस्तार करने का परिणाम है जैसे कि यह एक त्वरित स्ट्रिंग था।

$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.