我需要将号码转换为时间。
例如:
我需要将1230
转换为12:30
或0730
转换为07:30
。
如何在python中将数字转换为时间?
答案 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
string
和returns
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 :(得分: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)