这是我的代码:

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


当前回答

在Python中,可以使用datetime模块中的date、time和datetime类中的strftime()方法格式化datetime。

在您的特定情况下,您使用的是datetime中的date类。您可以使用以下代码段将today变量格式化为格式为yyyy-MM-dd的字符串:

import datetime

today = datetime.date.today()
print("formatted datetime: %s" % today.strftime("%Y-%m-%d"))

在以下更完整的示例中:

import datetime
today = datetime.date.today()

# datetime in d/m/Y H:M:S format
date_time = today.strftime("%d/%m/%Y, %H:%M:%S")
print("datetime: %s" % date_time)

# datetime in Y-m-d H:M:S format
date_time = today.strftime("%Y-%m-%d, %H:%M:%S")
print("datetime: %s" % date_time)

# format date
date = today.strftime("%d/%m/%Y")
print("date: %s" % time)

# format time
time = today.strftime("%H:%M:%S")
print("time: %s" % time)

# day
day = today.strftime("%d")
print("day: %s" % day)

# month
month = today.strftime("%m")
print("month: %s" % month)

# year
year = today.strftime("%Y")
print("year: %s" % year)

更多指令:

来源:

在Python中设置DateTime格式斯特夫蒂姆

其他回答

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

这是你想要的:

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

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

some_date.strftime('%c')

您可以执行以下操作:

mylist.append(str(today))

在Python中,可以使用datetime模块中的date、time和datetime类中的strftime()方法格式化datetime。

在您的特定情况下,您使用的是datetime中的date类。您可以使用以下代码段将today变量格式化为格式为yyyy-MM-dd的字符串:

import datetime

today = datetime.date.today()
print("formatted datetime: %s" % today.strftime("%Y-%m-%d"))

在以下更完整的示例中:

import datetime
today = datetime.date.today()

# datetime in d/m/Y H:M:S format
date_time = today.strftime("%d/%m/%Y, %H:%M:%S")
print("datetime: %s" % date_time)

# datetime in Y-m-d H:M:S format
date_time = today.strftime("%Y-%m-%d, %H:%M:%S")
print("datetime: %s" % date_time)

# format date
date = today.strftime("%d/%m/%Y")
print("date: %s" % time)

# format time
time = today.strftime("%H:%M:%S")
print("time: %s" % time)

# day
day = today.strftime("%d")
print("day: %s" % day)

# month
month = today.strftime("%m")
print("month: %s" % month)

# year
year = today.strftime("%Y")
print("year: %s" % year)

更多指令:

来源:

在Python中设置DateTime格式斯特夫蒂姆

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

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

utc_now = datetime.now()

对于isoformat:

utc_now.isoformat()

对于任何格式,例如:

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