Linux स्क्रिप्टिंग और ऑटोमेशन में कल की तारीख प्राप्त करना एक सामान्य कार्य है। यह गाइड बिल्ट-इन date
कमांड का उपयोग करके दो विश्वसनीय तरीके प्रस्तुत करता है और समय क्षेत्रों को संभालने के विचारों का पता लगाता है।
विषयवस्तु की तालिका
date
कमांड का उपयोग करना
सबसे सरल तरीके में date
कमांड की अंतर्निहित “कल” कार्यक्षमता का सीधे उपयोग करना शामिल है:
date -d "yesterday" +%Y-%m-%d
यह कमांड:
date
: date कमांड को बुलाता है।-d "yesterday"
: निर्दिष्ट करता है कि हमें कल की तारीख चाहिए।+%Y-%m-%d
: आउटपुट को YYYY-MM-DD के रूप में स्वरूपित करता है। आप इसे अनुकूलित कर सकते हैं (जैसे,+%F
,+%Y/%m/%d
,+%d/%m/%Y
)।
उदाहरण: यदि आज 2024-10-27 है, तो आउटपुट होगा: 2024-10-26
अधिक सटीकता के लिए समय क्षेत्रों को संभालना
विभिन्न समय क्षेत्रों में सटीक तिथि गणना की आवश्यकता वाली स्क्रिप्ट के लिए, एक अधिक मजबूत विधि की आवश्यकता होती है। जबकि पिछली विधि आमतौर पर पर्याप्त होती है, डेलाइट सेविंग टाइम संक्रमण के कारण विसंगतियाँ उत्पन्न हो सकती हैं। यह परिष्कृत दृष्टिकोण युग समय का उपयोग करता है:
date -d "@$(($(date +%s) - 86400))" +%Y-%m-%d
यह कमांड:
date +%s
: युग (1 जनवरी, 1970, 00:00:00 UTC) के बाद से सेकंड में वर्तमान समय प्राप्त करता है।$(...)
: कमांड प्रतिस्थापन, आंतरिक कमांड के आउटपुट को कैप्चर करता है।- 86400
: 86400 सेकंड (एक दिन) घटाता है।@(...)
:date
को पूर्ववर्ती मान को युग के बाद से सेकंड के रूप में व्याख्या करने के लिए कहता है।date -d "..." +%Y-%m-%d
: परिणामी युग समय को YYYY-MM-DD के रूप में स्वरूपित करता है।
यह विधि संभावित समय क्षेत्र से संबंधित अस्पष्टताओं से बचने के लिए, युग समय में सीधे हेरफेर करके सटीकता सुनिश्चित करती है।
अधिकांश परिदृश्यों के लिए, date -d "yesterday"
का उपयोग करने वाली पहली विधि पर्याप्त है। हालाँकि, महत्वपूर्ण अनुप्रयोगों या क्रॉस-टाइमज़ोन स्क्रिप्ट के लिए, दूसरा दृष्टिकोण अधिक विश्वसनीय समाधान प्रदान करता है। अपनी विशिष्ट आवश्यकताओं के अनुसार आउटपुट स्वरूप को तैयार करना याद रखें।