Bell, Kevin wrote:
Anyone aware of existing code to turn a date string "8-15-05" into the
number 20050815?
import datetime
s = "8-15-05"
month,day,year = map(int, s.split('-'))
date = datetime.date(2000+year,month,day)
date.strftime('%Y%m%d')
'20050815'
Of course, if you really want the *number* 20050815 you'd
have to do int(date.strftime('%Y%m%d'))
Using a datetime.date object means that you have good
support for a lot of arithmetic on and formatting of
dates without writing a lot of new code.
If you really mean that you want the number 20050815, I
assume this is because some legacy system beyond you control
need to have dates in that format. It's not a particularly
good format for dates. If you just want a numeric storage of
dates, I'd suggest using datetime.date.toordinal/fromordinal.
Those numbers aren't as easy to decipher manually, but at
least they work right if you subtract dates or add or subtract
days from a date.