Python中表示时间但不包含日期的结构体

4

Python中是否有一种数据结构仅表示小时、分钟和秒,而不包含其他信息?如果没有,那么在这种情况下使用哪种结构最好?


1
它是否只能存储整数,需要确保有效性吗?您是否计划将其转换为另一种表示形式或进行日期计算? - CodeManX
你需要支持分钟吗?你的使用场景是什么? - Martijn Pieters
2个回答

9

datetime模块提供了几种类型来表示日期和时间,在这里可能会使用datetime.time()对象:

from datetime import time

afternoon_tea = time(16, 30)
如果你想表示持续时间,可以使用datetime.timedelta()对象;这些对象可用于调整datetime.date()或datetime.datetime()对象:

如果你想要表示时间持续,可以使用datetime.timedelta()对象;这些对象可用于调整datetime.date()datetime.datetime()对象:

from datetime import timedelta

halfday = timedelta(hours=12)

您也可以将时间表示为整数,以秒为单位:

onehour = 60

这完全取决于你的使用情况,可惜你没有在问题中提供。


2
为什么不直接使用datetime模块及其相关功能来处理呢:
from datetime import datetime
my_time = '05:43:34'

my_time = datetime.strptime('%H:%M:%S', my_time)

然后你可以简单地做一些事情,比如:
>>> my_time.hour
5

>>> my_time.minute
43

>>> my_time.second
34

@Downvoter,为什么要点踩?我的回答有什么问题吗? - sshashank124
为什么在这里使用 datetime.datetime() 而不是 datetime.time()?提问者要求一个仅表示时间而不包括日期的类型。 - Martijn Pieters
@MartijnPieters,谢谢您。我已经更新了我的回答。 - sshashank124
time.strptime() 不存在。 - Martijn Pieters
当然可以,但对于问题“用什么数据结构来表示仅仅时间”而言,这是一个奇怪且(在我看来)不太有帮助的回答。 - Martijn Pieters
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接