有没有比以下更好的方法以YYYY-MM-DD格式返回今天的日期?
str(datetime.datetime.today()).split()[0]
有没有比以下更好的方法以YYYY-MM-DD格式返回今天的日期?
str(datetime.datetime.today()).split()[0]
当前回答
你在和熊猫一起工作吗?
您可以使用panda库中的pd.to_datetime。以下是各种选项,具体取决于您希望返回的内容。
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之外,您还可以使用,
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')
另一个日期解析器库:Pendulum
这张很好,我保证。
如果你使用钟摆,有一些有趣的选择。您可以使用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'))
此外,您还可以直接获得明天()或昨天()的日期,而无需执行任何额外的时间增量运算。
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'
此答案的基本原理
许多熊猫用户偶然发现了这个问题,因为他们认为这是一个蟒蛇问题,而不是熊猫问题。这个答案旨在对那些已经在使用这些库的人有用,并且有兴趣知道在库本身的范围内有实现这些结果的方法。
如果您还没有使用panda或钟摆,我绝对不建议仅为了运行此代码而安装它们!这些图书馆很重,里面有很多管道。如果您可以使用标准库,那么就不值得麻烦了。
其他回答
我的代码有点复杂,但我经常使用它
strftime("%y_%m_%d", localtime(time.time()))
引用:'https://strftime.org/
你可以查看参考资料来制作任何你想要的东西YYYY-MM-DD只需将我的代码更改为:
strftime("%Y-%m-%d", localtime(time.time()))
如果你喜欢记住有趣的代码,Datetime就很可爱。你不喜欢简单吗?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
这个模块足够聪明,可以理解你的意思。
只需执行pip安装箭头。
附录:在回答那些对这个答案感到困惑的人时,让我说箭头代表了Python中处理日期的一种替代方法。这正是我想建议的。
你在和熊猫一起工作吗?
您可以使用panda库中的pd.to_datetime。以下是各种选项,具体取决于您希望返回的内容。
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之外,您还可以使用,
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')
另一个日期解析器库:Pendulum
这张很好,我保证。
如果你使用钟摆,有一些有趣的选择。您可以使用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'))
此外,您还可以直接获得明天()或昨天()的日期,而无需执行任何额外的时间增量运算。
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'
此答案的基本原理
许多熊猫用户偶然发现了这个问题,因为他们认为这是一个蟒蛇问题,而不是熊猫问题。这个答案旨在对那些已经在使用这些库的人有用,并且有兴趣知道在库本身的范围内有实现这些结果的方法。
如果您还没有使用panda或钟摆,我绝对不建议仅为了运行此代码而安装它们!这些图书馆很重,里面有很多管道。如果您可以使用标准库,那么就不值得麻烦了。
使用f字符串,它们通常是任何文本变量组合的最佳选择:
from datetime import date
print(f'{date.today():%Y-%m-%d}')
取自Python f-string格式,不适用于具有官方链接的strftime内联。
很晚才回答,但您可以简单地使用:
import time
today = time.strftime("%Y-%m-%d")
# 2023-02-08