在python中格式化“昨天”的日期


232

我需要MMDDYY在Python中以这种格式找到“昨天”的日期。

例如,今天的日期将这样表示:111009

我今天可以轻松完成此操作,但是在“昨天”自动执行此操作有麻烦。

Answers:


387

datetime.timedelta()

>>> from datetime import date, timedelta
>>> yesterday = date.today() - timedelta(days=1)
>>> yesterday.strftime('%m%d%y')
'110909'

1
如果您碰巧与熊猫一起工作,则可以使用:print((pd.to_datetime('Today') - pd.Timedelta('1 days')).strftime('%m%d%y'))
etna

如果碰巧搜索选项,则还可以使用Pendulum(pendulum.eustace.io):pendulum.now()。subtract(days = -1).strftime('%m%d%y')
AFD


21

这应该做您想要的:

import datetime
yesterday = datetime.datetime.now() - datetime.timedelta(days = 1)
print yesterday.strftime("%m%d%y")

1
为什么您要关心UTC偏移量0中的日期而不是系统本地时区中的日期?
杰弗里·哈里斯

1
我从代码中复制了该代码,在数据库使用中,您经常关心UTC。删除了UTC的东西。
Stef

7

所有答案都是正确的,但是我想提到时间增量接受否定论点

>>> from datetime import date, timedelta
>>> yesterday = date.today() + timedelta(days=-1)
>>> print(yesterday.strftime('%m%d%y')) #for python2 remove parentheses 

5

我可以将其设置为更具国际性,并根据国际标准设置日期格式,而不是在美国常见的怪异的月-日-年格式中吗?

from datetime import datetime, timedelta

yesterday = datetime.now() - timedelta(days=1)
yesterday.strftime('%Y-%m-%d')

同意我们在美国使用奇怪的日期格式,但是OP特别要求使用奇怪的格式-在这种情况下为''%m%d%y'。
DaveL17 '19

@ DaveL17,公平点。我将把答案留给所有偶然发现这个问题的美国以外的人。
阿维德·拜恩希尔姆(ArvidBäärnhielm)

2

扩展克里斯给出的答案

如果您想以特定格式将日期存储在变量中,就我所知,这是最短,最有效的方法

>>> from datetime import date, timedelta                   
>>> yesterday = (date.today() - timedelta(days=1)).strftime('%m%d%y')
>>> yesterday
'020817'

如果您希望将其作为整数(可能会有用)

>>> yesterday = int((date.today() - timedelta(days=1)).strftime('%m%d%y'))
>>> yesterday
20817
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.