Python - 计算两个 datetime.time 对象之间的差异
Posted
技术标签:
【中文标题】Python - 计算两个 datetime.time 对象之间的差异【英文标题】:Python - Calculate the difference between two datetime.time objects 【发布时间】:2017-09-04 11:00:51 【问题描述】:我有两个 datetime.time 对象,我想计算它们之间的小时差。例如
a = datetime.time(22,00,00)
b = datetime.time(18,00,00)
我希望能够减去这些,以便得到值 4。
【问题讨论】:
【参考方案1】:要计算差异,您必须将datetime.time
对象转换为datetime.datetime
对象。然后当你减去时,你会得到一个timedelta
对象。为了找出timedelta
对象的小时数,您必须找到总秒数并除以3600
。
# Create datetime objects for each time (a and b)
dateTimeA = datetime.datetime.combine(datetime.date.today(), a)
dateTimeB = datetime.datetime.combine(datetime.date.today(), b)
# Get the difference between datetimes (as timedelta)
dateTimeDifference = dateTimeA - dateTimeB
# Divide difference in seconds by number of seconds in hour (3600)
dateTimeDifferenceInHours = dateTimeDifference.total_seconds() / 3600
【讨论】:
【参考方案2】:我就是这样做的
a = '2200'
b = '1800'
time1 = datetime.strptime(a,"%H%M") # convert string to time
time2 = datetime.strptime(b,"%H%M")
diff = time1 -time2
diff.total_seconds()/3600 # seconds to hour
输出:4.0
【讨论】:
【参考方案3】:我从这个问题中得到了结果:
a='2017-10-10 21:25:13'
b='2017-10-02 10:56:33'
a=pd.to_datetime(a)
b=pd.to_datetime(b)
c.total_seconds()/3600
但在系列中不起作用:
table1['new2']=table1['new'].total_seconds()/3600
【讨论】:
以上是关于Python - 计算两个 datetime.time 对象之间的差异的主要内容,如果未能解决你的问题,请参考以下文章