您好我的以下代码为我提供了一个数字日(例如2015_09_1),即使我是在昨天的2位数之后:
import time
yesterday = time.strftime("%Y_%m_") + str(int(time.strftime('%d'))-1)
print(yesterday)
答案 0 :(得分:2)
好的,首先,即使你解决了零填充问题,这也不行。今天它会说昨天是9月0日。 1月1日也会出现错误。
只需从当前时间减去一天(86,400秒),然后将然后格式减去字符串。
yesterday = time.strftime("%Y_%m_%d", time.localtime(time.time()-86400))
如果您不想使用基于秒的算术,请使用datetime.timedelta
查看@ taesu的答案。
答案 1 :(得分:2)
from datetime import date, timedelta
d = date.today() - timedelta(days=1)
print d.strftime("%Y_%m_%d")
使用time
,没有错
但是我个人更喜欢datetime
,只是因为它比较干净。
我使用这种方法的一个原因是因为如果我想在前一天得到什么,那么我必须86,400*2
。
timedelta
,只是days=2