Skip to main content
 首页 » 编程设计

python之0-23 小时军用时钟到标准时间 (hh :mm)

2025年05月04日8lyj

我将如何处理这个过程?假设有人输入“3:5”,我应该能够得到输出“3:05 AM”。或者,如果有人输入“00:00”,我应该得到“12:00 AM”。如果将时间格式简单地输入为“hhmm”,我意识到有很多方法可以解决这个问题,但输入的范围可以是“h:m”、“hh:m”、“hh:m”和“hh:毫米”。所以这是非常有情境的。

def timeConvert(): 
    miliTime = int(input("Enter a time in hh:mm (military) format: ")) 
    miliTime.split(":") 
    if len(miliTime) == 3: 
        hours = miliTime[0] 
        minutes = miliTime[2] 
        if hours < 0: 
            print("Hours can't be less than 0.") 
    elif len(miliTime) == 4: 
        if miliTime[0:2] >= 10: 
            hours = militime[0:2] 
            minutes = militime[3] 
            if minutes < 0: 
                print("Minutes can't be less than 0.") 
            if minutes < 10: 
                minutes = 0 + minutes 
        else: 
            hours = miliTime[0] 
            minutes = militime[2:] 
            if minutes >= 60: 
                print("Too big of a number for minutes.") 
    else: 
        hours = miliTime[0:2] 
        minutes = miliTime[3:] 
    setting = AM 
    if hours > 12: 
        setting = PM 
        hours -= 12 
    print(hours + ":" + minutes + setting) 
 
timeConvert() 

请您参考如下方法:

使用 datetime 模块的 strptime() 将字符串读取为 datetime 对象,然后使用 strftime() 将其转换回字符串,示例 -

>>> datetime.datetime.strptime('3:5','%H:%M').strftime('%I:%M %p') 
'03:05 AM' 
>>> datetime.datetime.strptime('18:30','%H:%M').strftime('%I:%M %p') 
'06:30 PM' 
>>> datetime.datetime.strptime('00:00','%H:%M').strftime('%I:%M %p') 
'12:00 AM' 

格式说明-

%H - Hour (24-hour fomrat)

%M - Minute

%I - Hour (12-hour format)

%p - AM or PM


函数看起来像-

def timeConvert(): 
    import datetime 
    ds = input("Enter a time in hh:mm (military) format: ") 
    newds = datetime.datetime.strptime(ds, ,'%H:%M').strftime('%I:%M %p') 
    print(newds)