2015-09-16 3 views
0

У меня есть ENDDATE с ISO8601 формата и durationDays теперь
И я хочу, чтобы вычислить STARTDATE с форматом UTC Я не уверен, является ли мой код правильно:.
когда я получаю datetime.datetime.utcfromtimestamp(startDate_Timestamp)
это как 2015-09-26 05:08:23 без часового пояса
Так что я добавить один. Но я не уверен, что это правильно ??Как рассчитать STARTDATE (UTC) с ENDDATE (ISO8601 и durationDays

import datetime 
import dateutil.tz 
import dateutil.parser 
import time 
import pytz 


endDate = "2015-10-10T01:08:03-04:00" 
durationDays = 13.666435185185186 

#convert endDate from ISO8601 to UTC time 
pyTime = dateutil.parser.parse(endDate) 
endDateUTC = pyTime.astimezone(dateutil.tz.tzutc()) 
print endDateUTC 

#convert pyTimeUTC to Timestamp 
pyTimeUTC_Timestamp = time.mktime(endDateUTC.timetuple()) 
print pyTimeUTC_Timestamp 


# durationDays * 24 * 60 * 60 
durationtimes = durationDays* 24 * 60 * 60 

#get startdate Timestamp 
startDate_Timestamp = pyTimeUTC_Timestamp - durationtimes 
print startDate_Timestamp 

# convert startDate_Timestamp back to UTC time 
startDateUTC = datetime.datetime.utcfromtimestamp(startDate_Timestamp).replace(tzinfo=pytz.utc) 
print startDateUTC 
+0

какой вопрос вы хотите получить? Вы должны быть конкретными –

+0

BTW, как вы пришли с 'durationDays = 13.666435185185186', вы вручную вычислили его через 13 дней 16 часов в несколько других минут/секунд? –

+0

Значение '' 'durationDays'''' взято из сайта kickstarter – user2492364

ответ

0

Вы можете проверить это, как это, чтобы увидеть, если он указывает даты, которые вы хотите:

(endDateUTC-startDateUTC).days 
13 
(endDateUTC-startDateUTC).seconds 
28780