如何将Python日期时间对象的时间部分转换为自一天开始以来的总秒数

时间:2015-11-17 22:13:10

标签: python datetime time seconds

我有一个返回日期时间对象的脚本,如下所示:

rec = record[14]    #index 14 is a straight datetime object
rec2 = rec.time()   #sends time part to rec2

我现在要做的就是将rec2转换为整数类型的秒。任何有关如何做到这一点的见解将不胜感激。

3 个答案:

答案 0 :(得分:1)

这个怎么样:

rec2.hour*3600 + rec2.minute*60 + rec2.second

我也发现了这个:

Get seconds since midnight in python

答案 1 :(得分:1)

我已经解决了#34;通过采用类似question的代码,这个难题更早,尽管我真的希望有更直接的方法。我带着@Nolen皇族"厚脸皮"一个衬里并将其包装在int()函数中。实质上:

rec = record[14]       #stores index 14 of a list to rec which is a full datetime object
rec2 = rec.time()      #stores time portion of that datetime object to rec2
rec3 = rec2.strftime('%H:%M:%S')   #uses strftime to convert to string
s = int(sum(int(i) * 60**index for index, i in enumerate(rec3.split(":")[::-1])))  #converts that string to integer

令人震惊,但它确实有效......但是,如果有人有更好的东西,我会非常感兴趣。

答案 2 :(得分:0)

The question "Python Time conversion h:m:s to seconds" (that you've linked)显示了一个简单有效的单行解决方案,介绍了如何获得自午夜起适用于datetime.datetimedatetime.time类型的整数秒数:

from datetime import timedelta

secs = timedelta(hours=rec.hour, minutes=rec.minute, seconds=rec.second).seconds