Mike Little
Mike Little

Reputation: 3

convert a date into numeric string

How can I convert a date into a numeric date?

For example, I want to convert '06-Jun-2021' to '20210609' and then turn it into a string i can use in a webpage eg. baseball.theater/games/20210609 so that i can automate the process daily.

using datetime i've managed to do :

print (todays_date.year,todays_date.month,todays_date.day,sep="")

which can print the output i need (without the trailing 0's) but i cannot make this into a string which i can use.

obviously i am a COMPLETE newcomer to python, so be gentle please.

Upvotes: 0

Views: 1527

Answers (3)

Danish Khan
Danish Khan

Reputation: 59

I think you are looking time.strftime()
The function needs time module
import time
then you can either use a variable and display that time in a specific format.

t = time.time()
print(time.strftime('%H%M%S', t) # print the time t in specific format
print(time.strftime('%H%M%S') # print present time in specific format

Here is a list of options from https://www.tutorialspoint.com/

  • %a - abbreviated weekday name
  • %A - full weekday name
  • %b - abbreviated month name
  • %B - full month name
  • %c - preferred date and time representation
  • %C - century number (the year divided by 100, range 00 to 99)
  • %d - day of the month (01 to 31)
  • %D - same as %m/%d/%y
  • %e - day of the month (1 to 31)
  • %g - like %G, but without the century
  • %G - 4-digit year corresponding to the ISO week number (see %V).
  • %h - same as %b
  • %H - hour, using a 24-hour clock (00 to 23)
  • %I - hour, using a 12-hour clock (01 to 12)
  • %j - day of the year (001 to 366)
  • %m - month (01 to 12)
  • %M - minute
  • %n - newline character
  • %p - either am or pm according to the given time value
  • %r - time in a.m. and p.m. notation
  • %R - time in 24 hour notation
  • %S - second
  • %t - tab character
  • %T - current time, equal to %H:%M:%S
  • %u - weekday as a number (1 to 7), Monday=1. Warning: In Sun Solaris Sunday=1
  • %U - week number of the current year, starting with the first Sunday as the first day of the first week
  • %V - The ISO 8601 week number of the current year (01 to 53), where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week
  • %W - week number of the current year, starting with the first Monday as the first day of the first week
  • %w - day of the week as a decimal, Sunday=0
  • %x - preferred date representation without the time
  • %X - preferred time representation without the date
  • %y - year without a century (range 00 to 99)
  • %Y - year including the century
  • %Z or %z - time zone or name or abbreviation
  • %% - a literal % character

Upvotes: -1

Cory Kramer
Cory Kramer

Reputation: 117886

You can use datetime.strptime to turn a string into a datetime object, then datetime.strftime to reformat it into a different string.

>>> from datetime import datetime
>>> s = '06-Jun-2021'
>>> dt = datetime.strptime(s, '%d-%b-%Y')
>>> dt.strftime('%Y%m%d')
'20210606

For the specific case of the current day, you can use datetime.today

>>> datetime.today().strftime('%Y%m%d')
'20210609'

To combine this into your final string you can use str.format

>>> 'baseball.theater/games/{}'.format(datetime.today().strftime('%Y%m%d'))
'baseball.theater/games/20210609'

Upvotes: 4

Theorist
Theorist

Reputation: 177

Here, just typecast it to str and use .replace() method

from datetime import date   # datetime is a built-in module

today = str(date.today())
string = today.replace("-", "")
print(string)

P.S Just providing an alternate method to strftime

Upvotes: -1

Related Questions