2013-02-27 23 views
13

मैं डेटाटाइम में केवल समय भाग की तुलना करना चाहता हूं। मेरी तुलना करने के लिए केवल समय क्षेत्र के साथ अलग-अलग तिथियां हैं I चूंकि तिथियां अलग हैं और केवल समय का हिस्सा मैं विचार करना चाहता हूं इसलिए मुझे लगता है कि दो डेटाटाइम ऑब्जेक्ट बनाने में मदद नहीं होगी। जब मैं के रूप मेंडेटाटाइम में केवल समय भाग की तुलना करें - पायथन

dt=datetime.strptime(start,"%H:%M:%S") 

datetime के साथ उन्हें बदलने

start="22:00:00" 
End="03:00:00" 
Tocompare="23:30:00" 

से ऊपर के रूप में मेरे स्ट्रिंग तार कर रहे हैं यह

1900-01-01 22:00:00 

जो अजगर में डिफ़ॉल्ट दिनांक है देता है। इसलिए मुझे इन सब से बचने और केवल समय का हिस्सा चाहिए। मुझे बस यह जांचने की ज़रूरत है कि Tocomparestart और End

उत्तर

7

datetime.time() का उपयोग करके अपने समय की तुलना करें।

+0

भी समय मॉड्यूल तारीख हिस्सा मानता है और मैं केवल समय भाग की जरूरत है। @ Jarmod –

+1

http://docs.python.org/3.3/library/datetime.html#datetime.time के अनुसार, एक समय वस्तु का प्रतिनिधित्व करता है दिन का एक (स्थानीय) समय, किसी विशेष दिन से स्वतंत्र। – jarmod

+0

ओ माफ करना मैंने इसे अभी समझ लिया ... उत्तर के लिए धन्यवाद –

2
import datetime 

start = datetime.datetime.strptime(start, '%H:%M:%S') 
start = datetime.time(start.hour, start.minute,start.second) 

tocompare = datetime.datetime.strptime(tocompare, '%H:%M:%S') 
tocompare = datetime.time(tocompare.hour, tocompare.minute, tocompare.second) 

start > tocompare # False 
23

बस समय() विधि उनके घंटे, मिनट, सेकंड और माइक्रोसेकंड प्राप्त करने के लिए दिनांक वस्तुओं की कहते हैं।

dt=datetime.strptime(start,"%H:%M:%S").time() 
+0

बहुत धन्यवाद @matt –

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