Delta time字符串到datetime对象

2024-04-26 21:06:29 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个看起来像"Hours:5 Minutes:34 Seconds:28""Minutes:34 Seconds:28"的字符串,是否有任何pythonic方法将其转换为datetime对象?如果有更简单的方法,我不想使用正则表达式。你知道吗


Tags: 对象方法字符串datetimepythonicsecondshoursminutes
2条回答

可以使用^{}将字符串转换为datetime对象,如下所示:

>>> from datetime import datetime
>>> date_object = datetime.strptime('Hours:5 Minutes:34 Seconds:28', 'Hours:%H Minutes:%M Seconds:%S')
>>> date_object
datetime.datetime(1900, 1, 1, 5, 34, 28)
#                             ^   ^   ^
#                           Hour Min  Seconds

由于字符串中没有日期,它将保留默认日期1 Jan 1990。我认为您需要的是^{},它返回time对象,与您的datetime对象具有相同的时、分、秒和微秒。(tzinfoNone)。例如:

>>> date_object.time()
datetime.time(5, 34, 28)
#             ^   ^   ^
#          Hour  Min  Seconds 

其中date_object是先前创建的datetime类型。你知道吗

是的,有。你可以这样做:

import time

datetime_string = "Hours:5 Minutes:34 Seconds:28"
if "Hours" in datetime_string:
    datetime_object = time.strptime(datetime_string, "Hours:%H Minutes:%M Seconds:%S")
elif "Minutes" in datetime_string:
    datetime_object = time.strptime(datetime_string, "Minutes:%M Seconds:%S")
else:
    datetime_object = time.strptime(datetime_string, "Seconds:%S")

注意创建datetime对象时,未提供的值将用默认值填充价值观。所以呢,如果datetime_string只包含秒,则小时和分钟将设置为0。你知道吗

相关问题 更多 >