繁体   English   中英

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

[英]How to convert the time portion of a Python datetime object to total number of seconds since start of the day

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

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

我现在要做的只是将rec2转换为整数类型的秒数。 任何有关如何执行此操作的见解将不胜感激。

这个怎么样:

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

我也发现了这一点:

从Python午夜开始获得秒数

我早些时候通过采用类似问题的代码来“解决”了这个难题,尽管我确实希望有一种更直接的方法。 我拿了@Nolen Royalty的“厚脸皮”衬纸,并将其包装在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

令人费解的,但它仍然有效...仍然,如果有人有更好的东西,我会很感兴趣。

问题“ Python时间将h:m:s转换为秒” (已链接)显示了一个简单有效的单行解决方案,该方法如何获取自午夜以来可用于datetime.datetimedatetime.time的整数秒数datetime.time类型:

from datetime import timedelta

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM