这是我的代码:

import datetime
today = datetime.date.today()
print(today)

这张照片是:2008-11-22,这正是我想要的。

但是,我有一个列表,我要将其附加到列表中,然后突然一切都变得“不稳定”。代码如下:

import datetime
mylist = []
today = datetime.date.today()
mylist.append(today)
print(mylist)

这将打印以下内容:

[datetime.date(2008, 11, 22)]

我怎样才能得到像2008-11-22这样的简单约会?


当前回答

使用date.strftime。文档中描述了格式参数。

这是你想要的:

some_date.strftime('%Y-%m-%d')

这一次考虑了Locale。(这样做)

some_date.strftime('%c')

其他回答

这更短:

>>> import time
>>> time.strftime("%Y-%m-%d %H:%M")
'2013-11-19 09:38'

您需要将datetime对象转换为str。

以下代码适用于我:

import datetime

collection = []
dateTimeString = str(datetime.date.today())
collection.append(dateTimeString)
    
print(collection)

如果你需要更多帮助,请告诉我。

在格式化字符串文本中使用特定于类型的日期时间字符串格式(参见nk9使用str.format()的答案)(自Python 3.6,2016-12-23以来):

>>> import datetime
>>> f"{datetime.datetime.now():%Y-%m-%d}"
'2017-06-15'

日期/时间格式指令没有作为格式字符串语法的一部分记录,而是记录在日期、日期时间和时间的strftime()文档中。基于1989年C标准,但包括自Python 3.6以来的一些ISO 8601指令。

from datetime import date

def today_in_str_format():
    return str(date.today())

print (today_in_str_format())

这将打印2018-06-23,如果这是你想要的:)

对于pandas.Timestamps,可以使用strftime(),例如:

utc_now = datetime.now()

对于isoformat:

utc_now.isoformat()

对于任何格式,例如:

utc_now.strftime("%m/%d/%Y, %H:%M:%S")