您可以使用datetime模块,但随后还必须处理日期(您可以在其中插入所需的日期)。可能更容易解析它。
更新:正如@JonClements在对原始问题的评论中指出的那样,只需一行代码即可完成:from datetime import datetime
def convertTime(s):
print datetime.strptime(s, '%H%M').strftime('%I:%M%p').lower()
可以按以下方式拆分小时和分钟部分中的输入字符串:hours = input[0:2]
minutes = input[2:4]
然后分析这些值以获取整数:hours = int(hours)
minutes = int(minutes)
或者,用一种更像Python的方式:hours, minutes = int(input[0:2]), int(input[2:4])
然后你必须决定时间是在早上(hours在0到11之间)还是在下午(hours在12到23之间)。还要记住处理hours==0的特殊情况:if hours > 12:
afternoon = True
hours -= 12
else:
afternoon = False
if hours == 0:
# Special case
hours = 12
现在你得到了你需要的一切,剩下的就是格式化并打印结果:print '{hours}:{minutes:02d}{postfix}'.format(
hours=hours,
minutes=minutes,
postfix='pm' if afternoon else 'am'
)
把它包装成一个函数,走一些捷径,就会得到以下结果:def convertTime(input):
h, m = int(input[0:2]), int(input[2:4])
postfix = 'am'
if h > 12:
postfix = 'pm'
h -= 12
print '{}:{:02d}{}'.format(h or 12, m, postfix)
convertTime('0000')
convertTime('1337')
convertTime('0429')
convertTime('2359')
convertTime('1111')
结果:12:00am
1:37pm
4:29am
11:59pm
11:11am