8

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
  • 3,872
  • 6
  • 23
  • 33

2 Answers2

19

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,253
  • 2
  • 28
  • 47
7

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,219
  • 1
  • 23
  • 31