如何将日期时间转换为日期?

如何将datetime.datetime对象(例如,Python中datetime.datetime.now())的返回值转换为datetime.date对象?

1078169 次浏览

从留档:

datetime.datetime.date()

返回具有相同年、月、日的日期对象。

使用date()方法:

datetime.datetime.now().date()

您使用datetime.datetime.date()方法:

datetime.datetime.now().date()

显然,上面的表达式可以(并且应该IMHO:)写成:

datetime.date.today()

您可以使用date time对象的date()方法将datetime对象转换为日期,如下所示:

<datetime_object>.date()
import timeimport datetime
# use mktime to step by one day# end - the last day, numdays - count of days to step backdef 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 dayreturn xrange(start, end, 86400)
# if you need reverse the list of datesfor dt in reversed(gen_dates_list(datetime.datetime.today(), 100)):print datetime.datetime.fromtimestamp(dt).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()

答案更新到Python 3.7及更多

以下是如何将日期和时间对象

(又名datetime.datetime对象,存储在#1 django模型字段中的对象)

转换为日期对象(又名datetime.date对象):

from datetime import datetime
#your date-and-time object# let's supposed it is defined asdatetime_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 objectdate_element = datetime_element.date()

为了清楚起见,如果你打印这些元素,这是输出:

print(datetime_element)

2020-07-10 12:56:54.324893


print(date_element)

2020-07-10

我使用data.strftime('%y-%m-%d')和lambda将列传输到日期

Solved: AttributeError: 'Series' object has no attribute 'date'

您可以使用如下,

df["date"] = pd.to_datetime(df["date"]).dt.date

其中上面的代码date包含日期和时间(2020-09-21 22:32:00),使用上面的代码我们只能得到日期作为(2020-09-21)

如果您使用的是熊猫,那么这可以解决您的问题:

假设你的dataframe中有一个名为datetime64类型的变量start_time,那么你可以像这样获得日期部分:

df.start_time.dt.date