Python没有';我们不能比较日期吗?
我有这个发布时间: 2015-01-15 10:31:54+00:00 我现在有时间Python没有';我们不能比较日期吗?,python,date,datetime,time,compare,Python,Date,Datetime,Time,Compare,我有这个发布时间: 2015-01-15 10:31:54+00:00 我现在有时间 current_time = datetime.datetime.now(launch_time.tzinfo) 我想这两个时间都是一样的,所以我用了tzinfo。因此,当前_时间的值为 2015-01-16 10:55:50.200571+00:00 我用这个来计算跑步时间: running_time = (current_time - launch_time).seconds/60 该值仅返回23分钟。
current_time = datetime.datetime.now(launch_time.tzinfo)
我想这两个时间都是一样的,所以我用了tzinfo。因此,当前_时间的值为
2015-01-16 10:55:50.200571+00:00
我用这个来计算跑步时间:
running_time = (current_time - launch_time).seconds/60
该值仅返回23分钟。一天+23分钟=1463分钟
有人能帮我吗。谢谢您正在忽略返回的timedelta
对象的.days
属性。改为使用将这些值包含在一个值中:
running_time = (current_time - launch_time).total_seconds()/60
或者,如果要忽略增量的微秒部分,请显式使用它:
running_time = current_time - launch_time.total_seconds()
running_time = running_time.seconds / 60 + running_time.days / 1440
从:
返回持续时间中包含的总秒数。相当于启用真除法计算的(td.微秒+(td.秒+td.天*24*3600)*10**6)/10**6
您正在忽略返回的timedelta
对象的.days
属性。改为使用将这些值包含在一个值中:
running_time = (current_time - launch_time).total_seconds()/60
或者,如果要忽略增量的微秒部分,请显式使用它:
running_time = current_time - launch_time.total_seconds()
running_time = running_time.seconds / 60 + running_time.days / 1440
从:
返回持续时间中包含的总秒数。相当于启用真除法计算的(td.微秒+(td.秒+td.天*24*3600)*10**6)/10**6
请注意,
launch\u time
和current\u time
可能具有不同的UTC偏移量,即除非launch\u time.tzinfo
是pytz
时区(存储历史(过去/未来)tz数据)的实例,否则您的代码是错误的。先将启动时间转换为UTC时间:
from datetime import datetime
launch_time_in_utc = launch_time.replace(tzinfo=None) - launch_time.utcoffset()
elapsed = (datetime.utcnow() - launch_time_in_utc)
其中,appead
是自启动时间以来经过的时间,表示为timedelta
对象
在Python 3.2+中将timedelta
对象转换为分钟:
from datetime import timedelta
elapsed_minutes = elapsed // timedelta(minutes=1)
在较旧的Python版本上,您可以使用.total_seconds()
作为:
注意:/
使用整数除法
另请参见。注意,
启动时间
和当前时间
可能具有不同的UTC偏移量,即,除非启动时间。tzinfo
是pytz
时区(存储历史(过去/未来)tz数据)的实例,否则您的代码是错误的。先将启动时间转换为UTC时间:
from datetime import datetime
launch_time_in_utc = launch_time.replace(tzinfo=None) - launch_time.utcoffset()
elapsed = (datetime.utcnow() - launch_time_in_utc)
其中,appead
是自启动时间以来经过的时间,表示为timedelta
对象
在Python 3.2+中将timedelta
对象转换为分钟:
from datetime import timedelta
elapsed_minutes = elapsed // timedelta(minutes=1)
在较旧的Python版本上,您可以使用.total_seconds()
作为:
注意:/
使用整数除法
另见