我在用着:
str(datetime.datetime.today()).split()[0]
以YYYY-MM-DD
格式返回今天的日期。
有没有那么简单的方法可以做到这一点?
我在用着:
str(datetime.datetime.today()).split()[0]
以YYYY-MM-DD
格式返回今天的日期。
有没有那么简单的方法可以做到这一点?
Answers:
您可以使用strftime:
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
此外,对于任何还在末尾寻找零填充的小时,分钟和秒的人:(Gabriel Staples评论)
datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
datetime.datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
time.strftime("%Y-%m-%d")
?
datetime.utcnow().strftime('%Y-%m-%d')
date
具有可用的功能datetime
您可以使用datetime.date.today()
并将结果datetime.date
对象转换为字符串:
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
/
?
date.today().strftime('%Y/%m/%d')
.
为'DMY',分隔符/
为M/D/Y
,分隔符-
为Y-M-D
。尽管并非每个人都遵循这些准则,但只要不是每个人都改用,它会有助于在国际上阅读日期Y-M-D
。
如果您想记住有趣的代码,那么日期时间就是很好的选择。您不喜欢简单吗?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
这个模块足够聪明,可以理解您的意思。
做吧pip install arrow
。
附录:在回答那些对此练习感到困惑的人时,我只想说箭头代表了Python处理日期的另一种方法。这主要是我的建议。
print(date.today())
>>“ 2018-12-16” 更好??大声笑并轻松获得int值t.year,t.month,t.day+1
>>(2018,12,17)在哪里t = date.today()
,事实是人们不必调用绿色箭头来告诉他们时间。哦,天哪,这是太多代码了,难以记住...
import datetime
与有import arrow
什么不同?当然是内置的,但是如果arrow
提供了更方便的格式,那为什么不使用它呢?
arrow
呢?但是,对于许多简单的项目,这是不必要的。同样,在许多公司内部项目中,ppl需要获得包括新库在内的批准。
其他答案建议使用python datetime.datetime
,但是正如@Bill Bell所说,还有其他库提供了更简单的datetime
接口,这些接口既可以作为服务,也可以作为更大的API生态系统的一部分。这里有两个这样的库使工作变得datetimes
非常简单。
您可以pd.to_datetime
从pandas库中使用。这里有各种选项,具体取决于您要返回的内容。
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
作为python datetime对象,
pd.to_datetime('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 50, 42, 587629)
作为格式化的日期字符串,
pd.to_datetime('today').isoformat()
# '2019-04-18T04:03:32.493337'
# Or, `strftime` for custom formats.
pd.to_datetime('today').strftime('%Y-%m-%d')
# '2019-03-27'
要仅从时间戳记中获取日期,请致电Timestamp.date
。
pd.to_datetime('today').date()
# datetime.date(2019, 3, 27)
除了之外to_datetime
,您还可以Timestamp
使用实例化对象,
pd.Timestamp('today') # pd.Timestamp('now')
# Timestamp('2019-04-18 03:43:33.233093')
pd.Timestamp('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 53, 46, 220068)
如果要使您的时间戳记时区知道,请将时区传递给tz
参数。
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
如果您使用摆锤,则有一些有趣的选择。您可以使用来获取当前时间戳记now()
或使用来获取今天的日期today()
。
import pendulum
pendulum.now()
# DateTime(2019, 3, 27, 0, 2, 41, 452264, tzinfo=Timezone('America/Los_Angeles'))
pendulum.today()
# DateTime(2019, 3, 27, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
此外,您也可以直接获取tomorrow()
或yesterday()
的日期,而无需执行任何其他的timedelta算法。
pendulum.yesterday()
# DateTime(2019, 3, 26, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
pendulum.tomorrow()
# DateTime(2019, 3, 28, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
有各种可用的格式设置选项。
pendulum.now().to_date_string()
# '2019-03-27'
pendulum.now().to_formatted_date_string()
# 'Mar 27, 2019'
pendulum.now().to_day_datetime_string()
# 'Wed, Mar 27, 2019 12:04 AM'
答案很晚,但是您可以使用:
import time
today = time.strftime("%Y-%m-%d")
# 2020-02-14
您可以使用,
>>> from datetime import date
>>> date.today().__str__()
'2019-10-05'
str(date.today())
仍然更好