您在使用 Pandas 吗?
您可以使用pandas 库中的pd.to_datetime。以下是各种选项,具体取决于您想要返回的内容。
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
作为一个pythondatetime对象,
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)
如果您想让您的 Timestamp 时区感知,请将时区传递给 tz 参数。
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
另一个日期解析器库:Pendulum
这个不错,我保证。
如果您正在使用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'))
此外,您还可以直接获取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'
这个答案的理由
很多 pandas 用户偶然发现了这个问题,因为他们认为这是一个 python 问题,而不是 pandas 问题。此答案旨在对已经在使用这些库并且有兴趣了解在库本身范围内实现这些结果的方法的人们有用。
如果您还没有使用 pandas 或 pendulum,我绝对不建议仅仅为了运行此代码而安装它们!这些库很重,并且在引擎盖下有很多管道。如果可以使用标准库,那就不值得了。