如何从 datetime.strptime 对象 python 中获取 "time" 部分

How get just the "time" part from a datetime.strptime object python

我有这样的数据:“2016-10-17 09:34:02”,格式为:“%Y-%m-%d %H:%M:%S”,我使用:from datetime import datetime

我的变量是这样的:

date_object = datetime.strptime(datetemp, format)

到目前为止,还不错...

但我只需要从这个对象 (date_object) 中获取时间部分来进行一些比较...

当我这样做时:

print(date_object.time)

我收到以下错误:

built-in method time of datetime.datetime object at 0x00A94AE8

如何从对象 date_object 中获取时间部分?这将使我能够在每小时范围内进行比较。

您需要在 print(date_object.time) 调用中添加括号 ()

print(date_object.time())

示例输出:

>>> import datetime
>>> now = datetime.datetime.now()
>>> now.time()
datetime.time(22, 14, 6, 996000)
>>> print(now.time())
22:14:06.996000

date_object.time().__str__() 这会给你你想要的格式

date_object.time().__str__() is equal to `print(date_object.time())`

但您可以将其存储在 var 中,而不仅仅是在屏幕上打印它。

>>> import datetime as dt 
>>> timenow = dt.datetime.now()
>>> timenow
datetime.datetime(2016, 11, 23, 9, 59, 54, 291083)
>>> timenow.date()
datetime.date(2016, 11, 23)
>>> timenow.time()
datetime.time(9, 59, 54, 291083)

输出是日期时间类型。

>>> print(datetime.time())
00:00:00

或者您可以将其转换为字符串并打印

>>> time_str = str(timenow.time())
>>> time_str
'09:59:54.291083'