2

特定の形式を使用して、2つの日時で文字列をフォーマットしたいと思います。

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))

日付範囲:2013/02/0512:22:12から2013/02/0412:22:12

よりクリーンな方法はありますか?

4

2 に答える 2

6

文字列自体で日付形式を指定できます。

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)
于 2013-02-05T04:30:38.647 に答える
0

このことを考慮d1.isoformat().replace('T',' ').replace('-','/')[:-7]

isoformat()上記の形式にかなり近いです。IE。2013-02-04T23:53:45.174635

于 2013-02-05T05:09:16.250 に答える