这是我的代码:

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这样的简单约会?


当前回答

您可能想将其附加为字符串?

import datetime

mylist = []
today = str(datetime.date.today())
mylist.append(today)

print(mylist)

其他回答

# convert date time to regular format.

d_date = datetime.datetime.now()
reg_format_date = d_date.strftime("%Y-%m-%d %I:%M:%S %p")
print(reg_format_date)

# some other date formats.
reg_format_date = d_date.strftime("%d %B %Y %I:%M:%S %p")
print(reg_format_date)
reg_format_date = d_date.strftime("%Y-%m-%d %H:%M:%S")
print(reg_format_date)

输出,输出

2016-10-06 01:21:34 PM
06 October 2016 01:21:34 PM
2016-10-06 13:21:34

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

这是你想要的:

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

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

some_date.strftime('%c')

简单的答案-

datetime.date.today().isoformat()

我的答案是一个简短的免责声明——我只学了大约2周的Python,所以我绝不是专家;因此,我的解释可能不是最好的,我可能使用了不正确的术语。不管怎样,这就是答案。

我在代码中注意到,当您声明变量today=datetime.date.today()时,您选择使用内置函数的名称来命名变量。

当您的下一行代码mylist.append(today)附加列表时,它附加了整个字符串datetime.date.today(),您之前将其设置为today变量的值,而不仅仅是附加today()。

一个简单的解决方案是更改变量的名称,尽管大多数程序员在使用datetime模块时可能不会使用它。

以下是我尝试的:

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

并打印yyyy-mm-dd。

在格式化字符串文本中使用特定于类型的日期时间字符串格式(参见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指令。