Ryan Thomas
Ryan Thomas

Reputation: 536

I am having trouble formatting a date using datetime

I am getting a date from an API that I am trying to pass to my template after formatting using datetime but I keep getting this error:

time data 2021-03-09T05:00:00.000Z does not match format %Y-%m-%d, %I:%M:%S;%f

I know I have to strftime and then strptime but I cant get past that error.

I would like to split it into two variables one for date and one for the time that will show in the users timezone.

    date = game['schedule']['date']
    game_date = datetime.strptime(date, '%Y-%m-%d, %I:%M:%S;%f')

Upvotes: 1

Views: 33

Answers (1)

gribvirus74
gribvirus74

Reputation: 765

You have a slightly wrong time format:

game_date = datetime.strptime(date, '%Y-%m-%dT%H:%M:%S.%fZ')

Or (if you remove the last Z character from the date string) you can also use datetime.fromisoformat:

game_date = datetime.fromisoformat(date[:-1])

And then you can extract date and time this way:

date = game_date.date()
time = game_date.time()
time_with_timezone = game_date.timetz()

Upvotes: 2

Related Questions