Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 时间转换_Python_Python 2.7_Time - Fatal编程技术网

Python 时间转换

Python 时间转换,python,python-2.7,time,Python,Python 2.7,Time,军事到常规时间转换 所以,我在这个练习中遇到了一个问题,我必须把时间转换成上午和下午,转换成上午和下午 编写一个函数,将时间从军用格式转换为常规格式。 示例: >>> time12hr('1619') '4:19 p.m.' >>> time12hr('1200') '12:00 p.m.' >>> time12hr('1020') '10:20 a.m.' 第一次尝试: from datetime import d

军事到常规时间转换

所以,我在这个练习中遇到了一个问题,我必须把时间转换成上午和下午,转换成上午和下午

编写一个函数,将时间从军用格式转换为常规格式。 示例:

>>> time12hr('1619')
    '4:19 p.m.'
>>> time12hr('1200')
    '12:00 p.m.'
>>> time12hr('1020')
    '10:20 a.m.'
第一次尝试:

from datetime import datetime

def time12hr(the_time):
    hour = the_time[0:2]        

    d = datetime.strptime(the_time, "%H%M")
    s = d.strftime("%I:%M %p")
    return s

Test Cases         Expected Result  Returned Result
time12hr('1202')     12:02 p.m.       12:02 PM  
time12hr('1200')     12:00 p.m.       12:00 PM  
time12hr('0059')     12:59 a.m.       12:59 AM  
time12hr('1301')      1:01 p.m.       01:01 PM
time12hr('0000')     12:00 a.m.       12:00 AM
这将返回“12:00 PM”,这很好,但pyschools要求下午为下午或上午至上午,13:01应返回1:01而不是01:01

第二次尝试:

from datetime import datetime

def time12hr(input):
    hours, minutes = int(input[0:2]), int(input[2:4])
    if hours > 12:
            afternoon = True
            hours -= 12
    else:
            afternoon = False
        if hours == 0:
            # Special case
            hours = 12
        return '{hours}:{minutes:02d} {postfix}'.format(
    hours=hours,
    minutes=minutes,
    postfix='p.m.' if afternoon else 'a.m.'
)


Test Cases         Expected Result  Returned Result 
time12hr('1202')    12:02 p.m.        12:02 a.m.    - this is not good
time12hr('1200')    12:00 p.m.        12:00 a.m.    - this is not good
time12hr('0059')    12:59 a.m.        12:59 a.m.    
time12hr('1301')    1:01 p.m.          1:01 p.m.    
time12hr('0000')    12:00 a.m.        12:00 a.m.
我在代码中做错了什么?

好的,所以我解决了它。 这是正确的答案:

from datetime import datetime

def time12hr(input):
    hours, minutes = int(input[0:2]), int(input[2:4])
    if hours >= 12:
            afternoon = True
            hours -= 12
    else:
            afternoon = False
        if hours == 0:
            hours = 12

        return '{hours}:{minutes:02d} {postfix}'.format(
    hours=hours,
    minutes=minutes,
    postfix='p.m.' if afternoon else 'a.m.'
)