如何在python中转换数字?

时间:2017-11-25 12:25:21

标签: python

我需要将号码转换为时间。

例如:

我需要将1230转换为12:300730转换为07:30

如何在python中将数字转换为时间?

6 个答案:

答案 0 :(得分:1)

假设输入是字符串,您可以这样做:

number_str = '0730'
time_str = number_str[:2] + ':' + number_str[2:]
print(time_str)  # Output: '07:30'

答案 1 :(得分:1)

您可以将“:”插入索引2

val = 1230
new= ([str(i) for i in str(val)])
new.insert(2,":")

print(''.join(new))

<强>输出:

12:30

答案 2 :(得分:0)

我们可以创建function stringreturns time

这可以通过slicing string直到minutes(使用[:2]完成)在一行中完成,然后连接':'和最后将minutes[2:]连接起来。

def getTime(t):
    return t[:2] + ':' + t[2:]

以及一些显示它有效的测试:

>>> getTime("1230")
'12:30'
>>> getTime("0730")
'07:30'
>>> getTime("1512")
'15:12'

请注意function 无法采用integer并将其转换为string,否则带有前导零的条目将失败。例如。 0730无法正常工作。

是的,要回答@AbhishtaGatya,可以使用lambda函数编写,但这样做是不可取的。但是:

getTime = lambda t: t[:2] + ':' + t[2:]

与上述相同。

答案 3 :(得分:0)

如果您确定只有4位数作为字符串,则单向

new = '%s:%s'%(string[:2], string[2:])

但是,建议在python中使用日期时间处理 datetime

答案 4 :(得分:0)

from datetime import datetime

t1="1205"
t2="0605PM"
#%I - 12 hour format
print t1,(datetime.strptime(t1,"%I%M")).strftime("%I:%M")
print t2,(datetime.strptime(t2,"%I%M%p")).strftime("%I:%M")

#%H - 24 hour format
print t1,(datetime.strptime(t1,"%I%M")).strftime("%H:%M") 
print t2,(datetime.strptime(t2,"%I%M%p")).strftime("%H:%M")

答案 5 :(得分:0)

所有这些都需要4位数字。如果有3位数字,该代码将在前面加一个零。它将检查无效时间。

def conv_num_time(time):
num_str = ('{:04}'.format(time))
time_str = num_str[:2] + ':' + num_str[2:]
if int(num_str[:2])>23 or int(num_str[2:])>59:
    print("Invalid time")
else:
    print(time_str)
user_time = int(input(': '))
conv_num_time(user_time)