Yan*_*nis 4 python-3.x python-datetime
尝试从两个包含时间戳且格式为 的字符串中查找经过的时间hh:mm:ss.mss。基本上,我想减去两个对象并以毫秒datetime为单位获得数值结果。
这是我的代码:
from datetime import datetime
elapsed_time = 0
s = '13:46:34.550'
e = '13:46:36.750'
# only interested on the time part, not the date
start_time = datetime.strptime(s, '%H:%M:%S.%f')
end_time = datetime.strptime(e, '%H:%M:%S.%f')
#elapsed_time = end_time - start_time
#elapsed_time = (end_time - start_time).microsecond
Run Code Online (Sandbox Code Playgroud)
对于这两种elapsed_time计算,我都得到一个TypeError: unsupported operand type(s) for -: 'datetime.datetime' and 'int'.
它应该打印00:00:02.250或(理想情况下)2200。
有什么想法我做错了吗?
小智 6
以下内容对我有用(使用Python 3.5.2):
\n\nfrom datetime import datetime\n\nelapsed_time = 0\ns = \'13:46:34.550\'\ne = \'13:46:36.750\'\n\n# only interested on the time part, not the date\nstart_time = datetime.strptime(s, \'%H:%M:%S.%f\')\nend_time = datetime.strptime(e, \'%H:%M:%S.%f\')\n\ndiff = end_time - start_time\nelapsed_time = int((diff.seconds * 1000) + (diff.microseconds / 1000))\nRun Code Online (Sandbox Code Playgroud)\n\n我得到的输出是和2200之间的时间差(以毫秒为单位)se
一些参考:
\n\nPython:两个日期时间之间的差异(以毫秒为单位)(Mark Needham 的博客)
\n\n\n\n文档中的一些解释(上面链接):
\n\n在第8.1.4节datetime“对象”中,它指出对于操作:
timedelta = datetime1 - datetime2\nRun Code Online (Sandbox Code Playgroud)\n\n(对应于本答案中的最后第二行代码):
\n\n\n\n\n仅当两个操作数均为朴素操作数或均为感知操作数时,才定义
\ndatetime从 a 中减去 a 的操作。datetime如果一个人是有觉知的,而另一个人是天真的,TypeError就会被提升。
还:
\n\n\n\n在版本 3.3 中更改:朴素实例和感知实例之间的相等比较
\ndatetime不会引发\xe2\x80\x99t 问题TypeError
| 归档时间: |
|
| 查看次数: |
5896 次 |
| 最近记录: |