आप शेल ट्रेस को चालू करके समस्या देख सकते हैं:
+ date -d 'Apr 1 2016 - 1 month' +%B
March
++ date -d 'Apr 1 2016'
+ date -d 'Fri Apr 1 00:00:00 EDT 2016 - 1 month' +%B
February
जब आप आंतरिक date
कमांड के आउटपुट का उपयोग करते हैं , तो यह अप्रैल की शुरुआत में होता है, और जब ईएसटी / ईडीटी को बदलने के कारण एक महीने का समय घटता है, तो यह बंद हो जाता है:
+ date -d 'Fri Apr 1 00:00:00 EDT 2016 - 1 month'
Mon Feb 29 23:00:00 EST 2016
आपके परिणाम, निश्चित रूप से, आपकी स्थानीय समय-सीमा सेटिंग्स के अनुसार अलग-अलग होंगे। ट्रेस को चालू करने से टाइमजोन (मेरे मामले में EDT
) दिखाई देगा।
परिणाम भिन्न होने का कारण यह है कि बाद के मामले में आपने अधिक जानकारी दी है date
, इसके पैरामीटर को और अधिक विशिष्ट बना दिया है , अर्थात दिन का विशिष्ट समय। पहले भाग में, यह निर्दिष्ट नहीं किया गया था कि date
प्रदर्शन के लिए दिनांक / समय का निर्धारण कैसे किया जाए।
March