作为API请求的输入,我需要将日期的日期作为YYYY-MM-DD格式的字符串.我有一个工作版本是:
yesterday = datetime.date.fromordinal(datetime.date.today().toordinal()-1) report_date = str(yesterday.year) + \ ('-' if len(str(yesterday.month)) == 2 else '-0') + str(yesterday.month) + \ ('-' if len(str(yesterday.day)) == 2 else '-0') + str(yesterday.day)
必须有一个更优雅的方式来做到这一点,感兴趣的是教育目的和其他任何事情一样!
解决方法
你只需要从今天的日期减去一天. datetime.timedelta(1)将会给你一个
timedelta
object,这是一天的持续时间,并且可以从datetime对象中减去.然后,您可以使用
datetime.strftime
在orer中将日期对象转换为基于
espected format的字符串:
>>> from datetime import datetime,timedelta >>> datetime.strftime(datetime.now() - timedelta(1),'%Y-%m-%d') '2015-05-26'
请注意,不用调用datetime.strftime函数,也可以直接使用datetime对象的strftime方法:
>>> (datetime.now() - timedelta(1)).strftime('%Y-%m-%d') '2015-05-26'