I was trying to write a program that converts a string to datetime type. The code looks like this.
import datetime
time="20:36"
p=datetime.datetime.strptime(time, "%H:%M")
print(p)
and the output was
1900-01-01 20:36:00
How do I get rid of the '1990-01-01' ?
CodePudding user response:
It's unfortunate that you cannot simply write
p = datetime.time.strptime(time, "%H:%M")
because time.strptime
is not defined. You are forced to use datetime.strptime
, which returns a datetime
object no matter what fields are actually being parsed.
On the plus side, you can get the time
object you want relatively easily.
t = p.time()
print(t) # Outputs 20:36:00
CodePudding user response:
You're creating a datetime
object from your string and displaying the datetime
as a whole.
What you should do:
display just the time part:
- use
strftime
:
The code
import datetime
time="20:36"
p=datetime.datetime.strptime(time, "%H:%M")
print(p.strftime("%H:%M"))
- use
time
:
The code:
import datetime
time="20:36"
p=datetime.datetime.strptime(time, "%H:%M")
print(p.time())
What you really should do:
Create a time
object from your data. For that you can use datetime.time
import datetime
time="20:36"
hour, minute = time.split(":")
t = datetime.time(hour=int(hour), minute=int(minute))
print(t)