मैं निम्नलिखित कार्यों का उपयोग कर रहा:पायथन 3: टाइमटाइम डेटाटाइम: यह अतिरिक्त घंटा कहां से आता है?
# The epoch used in the datetime API.
EPOCH = datetime.datetime.fromtimestamp(0)
def timedelta_to_seconds(delta):
seconds = (delta.microseconds * 1e6) + delta.seconds + (delta.days * 86400)
seconds = abs(seconds)
return seconds
def datetime_to_timestamp(date, epoch=EPOCH):
# Ensure we deal with `datetime`s.
date = datetime.datetime.fromordinal(date.toordinal())
epoch = datetime.datetime.fromordinal(epoch.toordinal())
timedelta = date - epoch
timestamp = timedelta_to_seconds(timedelta)
return timestamp
def timestamp_to_datetime(timestamp, epoch=EPOCH):
# Ensure we deal with a `datetime`.
epoch = datetime.datetime.fromordinal(epoch.toordinal())
epoch_difference = timedelta_to_seconds(epoch - EPOCH)
adjusted_timestamp = timestamp - epoch_difference
date = datetime.datetime.fromtimestamp(adjusted_timestamp)
return date
और उन्हें पारित किया कोड के साथ प्रयोग:
twenty = datetime.datetime(2010, 4, 4)
print(twenty)
print(datetime_to_timestamp(twenty))
print(timestamp_to_datetime(datetime_to_timestamp(twenty)))
और निम्न परिणाम हो रही है:
2010-04-04 00:00:00
1270339200.0
2010-04-04 01:00:00
किसी कारण के लिए, मैं मुझे अपने कोड के बावजूद, अतिरिक्त घंटे अंतिम कॉल में जोड़ा गया है, जहां तक मैं देख सकता हूं, कोई दोष नहीं है।
यह अतिरिक्त घंटा कहां से आ रहा है?
क्या यह ब्रिटिश ग्रीष्मकालीन समय है? – msw
@msw क्या यह टाइमज़ोन के बारे में एक छिपी हुई संकेत है? ...यह लगभग एक हफ्ते पहले शुरू हुआ था, लेकिन मुझे नहीं पता कि मेरे कोड में यह टाइमज़ोन जानकारी को संभालता है या अभिनय करने के विरोध में भद्दा कार्य करता है? –
हाँ, यह एक संकेत था, क्योंकि मुझे एक ही परिणाम मिलते हैं और दिन के समय पर भी (पायथन 2.6 में) हैं। मैं अब भगवान-भयानक datetime.tzinfo ऑपरेशन के माध्यम से उलझ रहा हूं, जबकि मैं दुनिया के लिए http://en.wikipedia.org/wiki/Swatch_Internet_Time – msw