如何在python中把时间值(字符串)转换为datetime?

所以,我一直在试图工作在一个语句,我应该从用户的时间值,如果它是在一定的时间值之间,我应该问候用户早上好!,中午后好,晚上好,晚安。用户将以HH:MM:SS的格式输入时间,我的函数代码看起来像这样。

r = datetime.time(12, 00, 00)
t = datetime.time(18, 00, 00)
u = datetime.time(6, 00, 00)
p = datetime.time(23, 59, 00)
def my_function:
time=input('what is the time?')
    if datetime.datetime.strptime(time, '%H:%M:%S')>=u and datetime.datetime.strptime(time, '%H:%M:%S')<r:
        print('Morning')
    elif datetime.datetime.strptime(time, '%H:%M:%S')>=r and datetime.datetime.strptime(time, '%H:%M:%S')<t:
        print('Afternoon')
    elif datetime.datetime.strptime(time, '%H:%M:%S')>=t and datetime.datetime.strptime(time, '%H:%M:%S')<p:
        print('Evening')
    elif datetime.datetime.strptime(time, '%H:%M:%S')>=p and datetime.datetime.strptime(time, '%H:%M:%S')<u:
        print('Night')
    else:
        return 'invalid'

当我尝试调用该函数时,我返回了错误的时间数据 “what is the time?” does not match format ‘%H:%M:%S’. 谁能给点建议,如何修改我的代码,或者说我做错了什么? 非常感谢

edit:在’datetime.datetime’和’datetime.time’实例之间出现了’>=’不支持的错误。

解决方案:

def my_function():

    r = datetime.time(12, 00, 00)
    t = datetime.time(18, 00, 00)
    u = datetime.time(6, 00, 00)
    p = datetime.time(23, 59, 00)

    time = input('what is the time?')
    time = datetime.datetime.strptime(time, '%H:%M:%S').time()

    if u <= time < r:
        return('Morning')
    elif r <= time < t:
        return('Afternoon')
    elif t <= time < p:
        return('Evening')
    elif p <= time or time < u:
        return('Night')
    else:
        return 'invalid'

 print(my_function())

给TA打赏
共{{data.count}}人
人已打赏
解决方案

Cocoapods post_install,如何在Pods项目中添加目标会员。

2022-5-14 1:00:17

解决方案

在C++中,有没有什么方法可以声明一个变量的另一个变量的大小?

2022-5-14 1:00:19

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索