एसई नेटवर्क पर अन्य सभी प्रश्न परिदृश्यों के साथ सौदा करते हैं, जहां या तो तारीख को माना जाता है now
( क्यू ) या जहां केवल एक तारीख निर्दिष्ट है ( क्यू )।
मैं जो करना चाहता हूं वह एक तारीख और समय की आपूर्ति है, और फिर उस से एक समय घटाएं।
यहाँ मैं पहले की कोशिश की है:
date -d "2018-12-10 00:00:00 - 5 hours - 20 minutes - 5 seconds"
यह परिणाम है 2018-12-10 06:39:55
- यह 7 घंटे जोड़ा गया। फिर 20:05 मिनट घटाया गया।
के पेज man
और info
पेज को पढ़ने के बाद date
, मुझे लगा कि मैंने इसे इसके साथ तय कर लिया है:
date -d "2018-12-10T00:00:00 - 5 hours - 20 minutes - 5 seconds"
लेकिन, एक ही परिणाम। यह 7 घंटे भी कहाँ से मिलता है?
मैंने अन्य तारीखों की भी कोशिश की क्योंकि मुझे लगा कि शायद उस दिन हमारे पास 7200 लीप सेकंड थे, जो लोल को जानता है। लेकिन वही परिणाम।
कुछ और उदाहरण:
$ date -d "2018-12-16T00:00:00 - 24 hours" +%Y-%m-%d_%H:%M:%S
2018-12-17_02:00:00
$ date -d "2019-01-19T05:00:00 - 2 hours - 5 minutes" +%Y-%m-%d_%H:%M:%S
2019-01-19_08:55:00
लेकिन यहां यह दिलचस्प हो जाता है। यदि मैं इनपुट पर समय छोड़ देता हूं, तो यह ठीक काम करता है:
$ date -d "2018-12-16 - 24 hours" +%Y-%m-%d_%H:%M:%S
2018-12-15_00:00:00
$ date -d "2019-01-19 - 2 hours - 5 minutes" +%Y-%m-%d_%H:%M:%S
2019-01-18_21:55:00
$ date --version
date (GNU coreutils) 8.30
मुझे किसकी याद आ रही है?
अद्यतन: मैंने Z
अंत में जोड़ा है , और इसने व्यवहार को बदल दिया है:
$ date -d "2019-01-19T05:00:00Z - 2 hours" +%Y-%m-%d_%H:%M:%S
2019-01-19_04:00:00
मैं अभी भी उलझन में हूँ। दिनांक के बारे में GNU जानकारी पृष्ठ में इसके बारे में बहुत कुछ नहीं है ।
मुझे लगता है कि यह एक समय क्षेत्र का मुद्दा है, लेकिन आईएसओ 8601 पर द कैलेंडर विकी के हवाले से :
यदि कोई UTC संबंध जानकारी समय प्रतिनिधित्व के साथ नहीं दी जाती है, तो समय को स्थानीय समय माना जाता है।
जो मुझे चाहिए। मेरा स्थानीय समय भी सही ढंग से निर्धारित है। मुझे यकीन नहीं है कि डेट टाइमजोन के साथ डेट करने के लिए मुझे इस सरल मामले में डेटाइम की आपूर्ति करने और इसके कुछ को घटाना चाहते हैं। यह तारीख स्ट्रिंग से घंटे घटाना नहीं होना चाहिए पहले? यहां तक कि अगर यह इसे पहले एक तारीख में परिवर्तित करता है और फिर घटाव करता है, अगर मैं किसी भी घटाव को छोड़ देता हूं तो मुझे वही मिलता है जो मैं चाहता हूं:
$ date -d "2019-01-19T05:00:00" +%Y-%m-%d_%H:%M:%S
2019-01-19_05:00:00
तो अगर यह वास्तव में एक समय क्षेत्र का मुद्दा है, तो यह पागलपन कहां से आता है?