2017-01-03 6 views
-1

Привет, у кого-нибудь есть опыт с этой датой, функция времени, я чувствую, что мне не хватает чего-то важного ..... Есть что-то странное, когда я печатаю Date_time, если я печатаю его сам, как в приведенном ниже коде (первый вывод на печать), я получаю как дату, так и время. Но когда я распечатать его как часть функции addSecs, я потерять дату часть ...date.time не печатает дату и время (в функции addSecs) ..... python 2.7

############ 
DeltaTimeS = 9e-6 
######### 

from datetime import datetime, timedelta 

Date_time = datetime.strptime(T['value'], '%d-%m-%Y %H:%M:%S') 


print 'Date_time =',Date_time 


def addSecs(tm, secs): 
    fulldate = datetime(100, 1, 1, tm.hour, tm.minute, tm.second) 
    fulldate = fulldate + timedelta(seconds=secs) 
    return fulldate.time() 


for i, x in enumerate(Data_list): 

    print ';'.join(map(str,["Hello",addSecs(Date_time, i * DeltaTimeS),x])) 

выхода выглядит следующим образом

Date_time = 2016-08-24 14:59:08 
Hello;14:59:08.095733;-0.04821 
Hello;14:59:08.095742;-0.05164 
Hello;14:59:08.095751;-0.05134 
Hello;14:59:08.095760;-0.04280 
Hello;14:59:08.095769;-0.03390 
Hello;14:59:08.095778;-0.02819 
Hello;14:59:08.095787;-0.01727 
Hello;14:59:08.095796;-0.00933 
Hello;14:59:08.095805;-0.00435 
Hello;14:59:08.095814;0.00273 
Hello;14:59:08.095823;0.00924 
Hello;14:59:08.095832;0.01594 

Я использую функцию присоединиться becuase выходной необходимости быть без пробелов. Также этот код вытаскивает datalise из базы данных, поэтому я не думаю, что он будет работать для вас. Но, может быть, вы можете увидеть проблему, не запуская ее ????

+1

Конечно, ваша функция 'addSecs' теряет информацию о дате, вы сказали ей просто вернуть е время! См. Https://docs.python.org/2/library/datetime.html#datetime.datetime.time –

ответ

3

Этот бит громит информацию о дате:

fulldate = datetime(100, 1, 1, tm.hour, tm.minute, tm.second) 

И тогда этот бит преобразует datetime в time структуру (без даты):

return fulldate.time() 

Почему вы не просто сделать:

def addSecs(tm, secs): 
    return tm + timedelta(seconds=secs) 
+0

Спасибо :) Извините, это был глупый вопрос! –