2016-11-23 3 views
9

खोल में में के साथ "n घंटे पहले" अलग है जब मैं प्रिंट इसखोल तारीख "-n घंटे", कुछ स्थिति

date -d "2016-11-23 13:05 -1 hours " "+%Y-%m-%d %H:00:00" 

मैं 2016-11-23 23:00:00. अजीब मिलता है!

जब मैं इस

date -d "2016-11-23 13:05 1 hours ago" "+%Y-%m-%d %H:00:00" 

मैं 2016-11-23 12:00:00 मिल मुद्रित करें।

वे अलग क्यों हैं? मुझे लगता है कि वे 2016-11-23 12:00:00 दोनों हैं।

उत्तर

4

ऐसा इसलिए है क्योंकि ऋणात्मक संख्या को आपके टाइमज़ोन में ऑफसेट के रूप में माना जाता है, 13:05 पर नहीं। मेरे समय क्षेत्र में, MET (जीएमटी के एक घंटे पूर्व), यह मैं क्या मिलता है:

$ date -d "2016-11-23 13:05 -1 hours " "+%Y-%m-%d %H:00:00" 
2016-11-23 16:00:00 
$ TZ=GMT date -d "2016-11-23 13:05 -1 hours " "+%Y-%m-%d %H:00:00" 
2016-11-23 15:00:00 
$ TZ=GMT-1 date -d "2016-11-23 13:05 -1 hours " "+%Y-%m-%d %H:00:00" 
2016-11-23 16:00:00 
$ TZ=GMT-1 date -d "2016-11-23 13:05 -2 hours " "+%Y-%m-%d %H:00:00" 
2016-11-23 17:00:00 

समय क्षेत्र ऑफसेट आम तौर पर एक चार अंकों की संख्या के रूप में निर्दिष्ट किया जाता है,

Sun, 29 Feb 2004 16:21:42 -0800 

लेकिन जाहिरा तौर पर तारीख के रूप में (1) एक -1 के साथ भी खुश है।

आदमी पृष्ठ से:

दिनांक स्ट्रिंग

--date = STRING इस तरह के "सूर्य, 29 फ़र, 2004 16:21:42 के रूप में एक ज्यादातर मुफ्त प्रारूप मानव पठनीय दिनांक स्ट्रिंग है -0800 "या" 2004-02-29 16:21:42 "या यहां तक ​​कि" अगले गुरुवार "। दिनांक स्ट्रिंग में कैलेंडर दिनांक, दिन का समय, समय क्षेत्र, सप्ताह का दिन, सापेक्ष समय, सापेक्ष दिनांक और संख्याएं इंगित करने वाली वस्तुएं हो सकती हैं। एक खाली स्ट्रिंग दिन की शुरुआत को इंगित करती है। दिनांक स्ट्रिंग प्रारूप आसानी से यहां दस्तावेज़ों की तुलना में अधिक जटिल है लेकिन जानकारी प्रलेखन में वर्णित है।

+0

बहुत बहुत धन्यवाद। यह वही है जो मैं चाहता हूं। –

संबंधित मुद्दे