9

I am using an API that requires date inputs to come in the form 'YYYY-MM-DD' - and yes, that's a string.

I am trying to write an iterative program that will cycle through some temporal data. The interval will always be one month.

Is there a nice way to convert a Python date object into the given format? I considered treating the year, month and day as integer inputs and incrementing the values as needed, but that's rather inelegant and requires significant if\elif\...\else programming.

d0rmLife
  • 4,112
  • 7
  • 24
  • 33

2 Answers2

25

Use the strftime() function of the datetime object:

import datetime 

now = datetime.datetime.now()
date_string = now.strftime('%Y-%m-%d')
print(date_string)

Output

'2016-01-26'
gtlambert
  • 11,711
  • 2
  • 30
  • 48
10

Yes, there is already a module to handle this. See

https://docs.python.org/2/library/datetime.html

Specifically,

date.isoformat() 

Which Returns a string representing the date in ISO 8601 format, ‘YYYY-MM-DD’.

For example, date(2002, 12, 4).isoformat() == '2002-12-04'.

Greg Hilston
  • 2,397
  • 2
  • 24
  • 35