Python简单的时间转换代码

时间:2017-06-15 11:04:03

标签: python string time

我正在尝试将12小时格式的时间转换为24小时格式。我不确定为什么我会收到无效的语法错误。

def timeConversion(s):
    # Complete this function
    if s[-2:]=='PM':
        temp=s[:-2].split(':')
        print temp
        if temp[0]=='12':
            time= str(12)+':'+temp[1]+':'+temp[2]
        else:
            time= str(int(temp[0]+12)+':'+temp[1]+':'+temp[2]

    elif s[-2:]=='AM':
        temp=s[:-2].split(':')
        print temp
        if temp[0]=='12':
            time= '00:'+temp[1]+':'+temp[2]
        else:
            time= temp[0]+':'+temp[1]+':'+temp[2]

     return time

timeConversion("07:05:45PM")

以下是错误:

enter image description here

2 个答案:

答案 0 :(得分:3)

您缺少右括号:

      time= str(int(temp[0]) + 12)+':'+temp[1]+':'+temp[2]
                           ^
                          here

return time行的缩进需要与if/elif语句一致。

或者,您可以通过strptime将字符串加载到日期时间对象,然后使用strftime输出所需格式来完成您要做的事情。

from datetime import datetime

print datetime.strptime("07:05:45PM", "%I:%M:%S%p").strftime("%H:%M:%S") 

答案 1 :(得分:1)

我会发布一个答案,因为我无法发表评论,因为@ILostMySpoon告诉你,你错过了演员阵容中的一个括号。我想补充一点的是,通常对于“非法语法”错误,你应该注意与引发错误的那一行相关的一行。我认为这是因为解释器认为“elif”行是先例的延续,显然它不理解语法。