我在使用Python访问meridiem部分时遇到了问题。
在python中考虑这段代码: -
import datetime
time = input("Enter the time : (HH:MM:AM/PM)")
# the above time is in string format so to make it in datetime.datetime type
# we need to use strptime function.
time = datetime.datetime.strptime(time, "%H:%M:%p")
# now to access different parts of variable time:-
print(time.hour) # to access hour
print(time.minute) # to access minute
但我不知道如何检查用户是否输入了AM或PM。 尽力帮助
感谢' S
答案 0 :(得分:1)
time.hour
将小时作为24H值(0-23)返回。因此,如果小时值低于12,则为AM,否则为PM。
答案 1 :(得分:1)
考虑以下与解释器的会话:
>>> import time
>>> time.strptime('9:00 AM', '%I:%M %p')
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=9, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)
>>> time.strptime('9:00 PM', '%I:%M %p')
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=21, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)
如果您想知道它是AM还是PM,您可以使用以下内容:
>>> get_meridiem = lambda tm: 'AM' if tm.tm_hour < 12 else 'PM'
>>> get_meridiem(time.strptime('9:00 AM', '%I:%M %p'))
'AM'
>>> get_meridiem(time.strptime('9:00 PM', '%I:%M %p'))
'PM'
>>> get_meridiem(time.strptime('12:00 PM', '%I:%M %p'))
'PM'
>>> get_meridiem(time.strptime('11:59 AM', '%I:%M %p'))
'AM'
答案 2 :(得分:1)
您正在
中使用%H
time = datetime.datetime.strptime(time, "%H:%M:%p")
%H
是24小时时间格式。您解析的时间字符串采用12小时时间格式,因此,您应使用%I
代替12小时格式。
time = datetime.datetime.strptime(time, "%I:%M:%p")
当您将小时数解析为24小时时间格式时, strptime
可能会忽略meridiem。
答案 3 :(得分:1)
你非常接近,只需将反向应用于strptime。
amorpm = time.strftime("%p")
print(amorpm)