मान लीजिए हमारे पास इस प्रारूप में दो समय हैं "Day dd Mon yyyy hh:mm:ss +/-xxxx", जहां Day तीन अक्षरों वाला दिन है जिसका पहला अक्षर अपरकेस में है। Mon तीन अक्षरों में महीने का नाम है और अंत में + या - xxxx टाइमज़ोन को दर्शाता है उदाहरण के लिए +0530 इंगित करता है कि यह GMT से 5 घंटे 30 मिनट अधिक है (dd, hh, mm, ss जैसे अन्य प्रारूप स्वयं व्याख्यात्मक हैं)। हमें दो टाइमस्टैम्प के बीच सेकंड में निरपेक्ष अंतर ढूंढना है।
इसे पायथन का उपयोग करके हल करने के लिए हम datetime लाइब्रेरी का उपयोग करेंगे। strptime() नामक एक फंक्शन है जो स्ट्रिंग फॉर्मेटेड डेट को डेटटाइम ऑब्जेक्ट में बदल देगा। कुछ फॉर्मेट स्पेसिफायर नीचे दिए गए हैं:
- %a तीन अक्षर प्रारूप में दिन दर्शाता है
- %d संख्यात्मक प्रारूप में दिन दर्शाता है
- %b तीन अक्षर प्रारूप में महीना दर्शाता है
- %Y yyyy प्रारूप में वर्ष दर्शाता है
- %H hh प्रारूप में घंटा दर्शाता है
- %M mm प्रारूप में मिनट दर्शाता है
- %S ss प्रारूप में सेकंड दर्शाता है
- %z +/- xxxx प्रारूप में टाइमज़ोन दर्शाता है
उदाहरण के लिए, यदि इनपुट t1 = "Thu 15 Jul 2021 15:10:17 +0530" t2 = "Thu 15 Jul 2021 20:25:29 +0720" है, तो आउटपुट 12312 होगा।
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:
- t1 := पहले समय के प्रारूप को दी गई स्ट्रिंग से ऊपर उल्लिखित प्रारूप में बदलें
- t2 := दूसरे समय के प्रारूप को दी गई स्ट्रिंग से ऊपर उल्लिखित प्रारूप में बदलें
- t1 और t2 के बीच सेकंड में अंतर लौटाएं
उदाहरण
बेहतर समझ के लिए निम्न कार्यान्वयन देखें:
from datetime import datetime
def solve(t1, t2):
t1 = datetime.strptime(t1, "%a %d %b %Y %H:%M:%S %z")
t2 = datetime.strptime(t2, "%a %d %b %Y %H:%M:%S %z")
return abs(int((t1-t2).total_seconds()))
t1 = "Thu 15 Jul 2021 15:10:17 +0530"
t2 = "Thu 15 Jul 2021 20:25:29 +0720"
print(solve(t1, t2))इनपुट
"Thu 15 Jul 2021 15:10:17 +0530", "Thu 15 Jul 2021 20:25:29 +0720"
आउटपुट
12312