如何在Python中将datetime.datetime
对象(例如,datetime.datetime.now()
的返回值)转换为datetime.date
对象?
使用 date()
方法:
datetime.datetime.now().date()
datetime.datetime.utcnow()
,对应的日期则为 datetime.datetime.utcnow().date()
。 - Nick Bradydatetime.datetime.now(pytz.timezone('US/Pacific')).date()
。 - Monica For CEOfrom datetime import datetime, date, timezone
,则 datetime.now(timezone.utc).date()
可能与 datetime.now().date()
(后者也可用作 date.today()
)不同。 - tzotdatetime.datetime.date()
方法:datetime.datetime.now().date()
显然,上面的表达式可以(而且在我看来应该 :) 写成:
datetime.date.today()
.today()
)对于所述的示例问题来说是最具Python风格的。 - Dannidlosdat = datetime.datetime.strptime(losdatstr, '%d%m%Y')
,然后再执行 if losdat < datetime.datetime.today():
,结果将始终为真,因为“losdat”将具有午夜的时间组件,这将早于“today()”函数的时间戳。 - DDecoenedatetime.date
对象时,为什么要使用 datetime.datetime.today()
而不是 datetime.date.today()
? - tzot<datetime_object>.date()
你可以输入以下代码以获取(今天的日期和星期几以及小时):
datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')
'19-09-09 Mon 17:37:56'
并输入以下代码以获取(仅今天的日期):
datetime.date.today().strftime('%y-%m-%d')
'19-09-10'
对于对象:
datetime.datetime.now().date()
datetime.datetime.today().date()
datetime.datetime.utcnow().date()
datetime.datetime.today().time()
datetime.datetime.utcnow().date()
datetime.datetime.utcnow().time()
datetime.date
对象,而不是strftime
返回的字符串(参考:https://docs.python.org/3/library/datetime.html#datetime.date.strftime)。 - Grzegorz Skibinski答案已更新到Python 3.7及更高版本
以下是如何将日期时间对象
(也称为datetime.datetime
对象,该对象存储在models.DateTimeField
django模型字段中)
转换为日期对象(即datetime.date
对象):
from datetime import datetime
#your date-and-time object
# let's supposed it is defined as
datetime_element = datetime(2020, 7, 10, 12, 56, 54, 324893)
# where
# datetime_element = datetime(year, month, day, hour, minute, second, milliseconds)
# WHAT YOU WANT: your date-only object
date_element = datetime_element.date()
只是为了明确起见,如果您打印这些元素,以下是输出结果:
print(datetime_element)
2020年7月10日 12点56分54.324893秒
print(date_element)
2020年7月10日
import time
import datetime
# use mktime to step by one day
# end - the last day, numdays - count of days to step back
def gen_dates_list(end, numdays):
start = end - datetime.timedelta(days=numdays+1)
end = int(time.mktime(end.timetuple()))
start = int(time.mktime(start.timetuple()))
# 86400 s = 1 day
return xrange(start, end, 86400)
# if you need reverse the list of dates
for dt in reversed(gen_dates_list(datetime.datetime.today(), 100)):
print datetime.datetime.fromtimestamp(dt).date()
Solved: AttributeError: 'Series' object has no attribute 'date'
df["date"] = pd.to_datetime(df["date"]).dt.date
我使用lambda和data.strftime('%y-%m-%d')
将列转换为日期
df.start_time.dt.date
datetime.date.today()
代替datetime.datetime.now()
。请注意,这两种方法的意义不同。 - Thierry J.from datetime import datetime
,那么您可以添加date模块,即from datetime import datetime, date
。 - Josh