Я разрабатываю приложение на python, где мне нужно рассчитать время, прошедшее и предпринять соответствующие действия. У меня есть два раза по умолчанию и текущий. Я хочу сравнить разницу с каким-то другим временем, которое предоставляется в строковом формате.Манипуляция с datetime в python
Я попытался следующие:
d1 = datetime.datetime(2015, 1, 21, 9, 54, 54, 340000)
print d1
d2 = datetime.datetime.now()
print d2
print d2 - d1
d3 =datetime.datetime.strptime("22:17:46.476000","%H:%M:%S.%f")
print d3
Выход вышеуказанной программы:
2015-01-21 09:54:54.340000
2015-01-21 22:28:45.070000
12:33:50.730000
1900-01-01 22:17:46.476000
Здесь разница во времени 12: 33: 50,730000' и я хочу, чтобы сравнить его с '22 : 17: 46.476000 ', который является строкой.
Как я пытался преобразовать строку '22: 17: 46.476000 'в то время, когда я получил год в 1990 году. Я хочу только время, как '22: 17: 46.476000'. Поэтому я могу сравнить эти два раза с помощью timedelta.
Как избавиться от года 1990-01-01. Я хочу только «22: 17: 46.476000».
Я пытался использовать время, как time.strptime("22:17:46.476000","%H:%M:%S.%f")
но он дает выход в time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=22, tm_min=17, tm_sec=46, tm_wday=0, tm_yday=1, tm_isdst=-1)
Благодарности
Чтобы правильно вычислить прошедшее время, вам также необходимо учитывать местный часовой пояс. В частности, вы должны * не * подструктурировать из 'datetime.now()' value - часто это ошибка, см. [Найти, прошло ли 24 часа между датами - Python] (http://stackoverflow.com/a/ 26313848/4279). – jfs