将多个日期时间格式化为字符串

2024-03-29 02:09:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一种特殊的格式格式化一个包含两个datetimes的字符串。你知道吗

d1 = datetime.datetime.now()
d2 = datetime.datetime.now() - datetime.timedelta(days=1)

daterange = [d1, d2]

fmt = '%Y/%m/%d %H:%M:%S'

我正在用strftime首先格式化日期:

string = "Date range: {} to {}".format(d1.strftime(fmt), d2.strftime(fmt))

Date range: 2013/02/05 12:22:12 to 2013/02/04 12:22:12

有没有更干净的方法?你知道吗


Tags: to字符串datetimedate格式rangedaysnow
2条回答

您可以在字符串本身中提供日期格式:

string = "{0:%Y/%m/%d %H:%M:%S}".format(d1)

接下来,如果我们将一个参数的格式设置为format(),会更简洁一些:

"Date range: {0:{2}} to {1:{2}}".format(d1, d2, fmt)

我们甚至可以传递一个日期范围,并使用0[index]从中获取所有日期

"Date range: {0[0]:{1}} to {0[1]:{1}}".format(daterange, fmt)

为了提高可读性,我们还可以使用命名字段:

"Date range: {dates[0]:{fmt}} to {dates[1]:{fmt}}".format(dates=daterange, fmt=fmt)

考虑一下d1.isoformat().replace('T',' ').replace('-','/')[:-7]

isoformat()与上面的格式非常接近。传真:2013-02-04T23:53:45.174635

相关问题 更多 >