我需要一些帮助,使用开始和结束日期格式来计算20151227135000
和20151227160500
之后的当前时间。我想用两种格式进行计算,以便与当前时间进行比较,看看当前程序剩余的分钟数。
示例:我使用20151227160500
格式将其移除20151227135000
以获取程序25500
的全部时间,该时间显示为2小时55分钟,所以我想将它与当前时间和以下格式20151227160500
进行比较。如果当前时间显示为15:30PM
,并且我想将其与20151227160500
进行比较,以获得当前程序的剩余时间,它将显示为35 minutes
,因此我创建了宽度大小目前的计划。
以下是代码:
#get the programs list
cur = con.cursor()
cur.execute('SELECT channel, title, start_date, stop_date FROM programs where channel=?', [channel])
programList = list()
programs = cur.fetchall()
for ind, row in enumerate(programs):
program_start_date = str(row[2])
program_end_date = str(row[3])
#convert the date formats into minutes
minutes_start = self.parseDateTimeToMinutesSinceEpoch(program_start_date)
minutes_end = self.parseDateTimeToMinutesSinceEpoch(program_end_date)
minutes_length = minutes_end - minutes_start
program_length = minutes_length
if program_length > 165 and program_length <= 185: #3 hours
program_width = 2082
以下是开始日期格式:
20151227135000
以下是停止日期格式:
20151227160500
你能否告诉我一个例子,说明如何根据当前时间计算开始和结束日期格式,以查看当前程序在if program_length语句下剩余的分钟数?
编辑:以下是代码:
t = time.strptime("20151228000000", "%Y%m%d%H%M%S")
time_now = datetime.datetime.now()
d = time_now - t
print d
答案 0 :(得分:0)
使用datetime.strptime将格式转换为datetime,然后进行数学计算,这将为您提供timedelta对象...
In [59]: import datetime
t = datetime.datetime.strptime("20151227135000", "%Y%m%d%H%M%S")
d = datetime.datetime.now() - t
d
Out[59]:
datetime.timedelta(0, 5690, 225457)
In [60]: print(d.days, d.seconds, d.microseconds)
Out[60]: 0 5690 225457
编辑:根据更新的代码尝试...
import time
t = time.mktime(time.strptime("20151228000000", "%Y%m%d%H%M%S"))
time_now = time.time()
d = time_now - t
print d
这将为您提供两次之间的秒数。