如何将datetime转换为日期(在Python中)?

nik*_*sfi 572 python datetime

如何转换一个datetime.datetime对象(例如,返回值datetime.datetime.now())datetime.datePython中的对象?

ars*_*ars 870

使用date()方法:

datetime.datetime.now().date()
Run Code Online (Sandbox Code Playgroud)

  • 获取UTC非常有用 - >`datetime.datetime.utcnow()`和相应的`datetime.datetime.utcnow().date()` (12认同)
  • 感谢@SeanColombo,特定时区的当前日期应该是 `datetime.datetime.now(pytz.timezone('US/Pacific')).date()` (3认同)
  • datetime.datetime.utcnow() 已弃用,请参阅 https://docs.python.org/3/library/datetime.html#datetime.datetime 替换为 datetime.now(timezone.utc)。OP实际上已经过时了,所以这是没有意义的。 (3认同)
  • 要获取特定时区的当前日期:`datetime.datetime.now(pytz.timezone('US / Pacific')。date()`) (2认同)
  • 给定“from datetime import datetime, date, timezone”以及使用具有非零偏移量的时区,则“datetime.now(timezone.utc).date()”**可以**与“datetime.now”不同().date()`(后者也可用作 `date.today()`)。 (2认同)

小智 126

从文档:

datetime.datetime.date()

返回具有相同年,月和日的日期对象.


tzo*_*zot 58

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

datetime.datetime.now().date()
Run Code Online (Sandbox Code Playgroud)

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

datetime.date.today()
Run Code Online (Sandbox Code Playgroud)

  • 不要混淆这个家伙. (11认同)
  • @DennisDecoene:当人们想要一个“ datetime.date”对象时,为什么要使用“ datetime.datetime.today()”而不是“ datetime.date.today()”? (3认同)
  • 公平地说,这个答案(使用“.today()”)对于所述示例问题来说是最Pythonic的。 (2认同)
  • **如果您今天使用,比较日期时要小心。**`today()`也具有_hour_组件。因此,如果您这样做:`losdat = datetime.datetime.strptime(losdatstr,'%d%m%Y')`然后选择if losdat <datetime.datetime.today():`总是正确的,因为`losdat`将具有午夜的时间分量,该时间分量将在`today()`的时间戳之前 (2认同)

Fur*_*tor 36

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

<datetime_object>.date()
Run Code Online (Sandbox Code Playgroud)


Tms*_*s91 13

答案已更新至 Python 3.7 及更高版本

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

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

进入日期对象(又名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()
Run Code Online (Sandbox Code Playgroud)

需要明确的是,如果打印这些元素,则输出如下:

print(datetime_element)
Run Code Online (Sandbox Code Playgroud)

2020-07-10 12:56:54.324893


print(date_element)
Run Code Online (Sandbox Code Playgroud)

2020-07-10


kam*_*n26 8

您可以输入此代码表(今天的日期和当天的名称和小时)datetime.datetime.now().strftime('%y-%m-%d %a %H:%M:%S')

'19-09-09 星期一 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()


Ser*_*ity 6

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()
Run Code Online (Sandbox Code Playgroud)

  • 您是想在这里发布这个答案吗?在我看来,您的回答似乎是针对另一个问题。 (3认同)