Home > front end >  trying to insert character in the index of a string
trying to insert character in the index of a string

Time:02-21

i'm tring to insert 0 if hours are in single number(04) or if hours are in 24hours format then it should not be changed. I'm new to python. plz guide me.

current_time = '08:00'
lst = ['00:00','04:00','08:00','12:00','16:00','20:00']
if current_time in lst:
    hour, minute = current_time.split(':')
    if hour == '00':
        hour = '24'
    start_hour = int(hour)-4
    start_time = str(start_hour) ':' '00'
    end_hour = int(hour)-1
    end_time = str(end_hour) ':' '59'
    print(start_time,end_time)

I'm getting output like this:

4:00 7:59

but I'm expecting output like this

04:00 07:59

i've tried below approach

if len(start_time[0])==1:
    start_time = start_time[:0] '0' start_time[0:]

output:
016:00

CodePudding user response:

This is the way to do it with zfill:

current_time = '08:00'
lst = ['00:00','04:00','08:00','12:00','16:00','20:00']
if current_time in lst:
    hour, minute = current_time.split(':')
    if hour == '00':
        hour = '24'
    start_hour = int(hour)-4
    start_time = str(start_hour).zfill(2) ':' '00'
    end_hour = int(hour)-1
    end_time = str(end_hour).zfill(2) ':' '59'
    print(start_time,end_time)

Result:

04:00 07:59

CodePudding user response:

You can try to use python f-strings, code likes below

start_time = f'{start_hour:02d}:00'
end_time = f'{end_hour:02d}:00'

CodePudding user response:

There is already function rjust(width, fillchar) built in Python, which will add padding to your string. Just change start_time = str(start_hour) ':' '00' to start_time = str(start_hour).rjust(2, '0') ':' '00' and it will add missing zero if needed.

  • Related