8

00:00:01 と 23:59:59 を意味する datetime モジュールを使用して Python で最初と最後の 1 秒を取得する方法。

今日より前の6つの日時を取得したい。

たとえば、次のようになります。

今日12/10、そして私は手に入れたい

12/9 00:00:01 と 23:59:59

...

12/4 00:00:01 と 23:59:59

どうもありがとうございました。

4

1 に答える 1

28

datetime.time.minとを使用するだけdatetime.time.maxです:

>>> import datetime
>>> datetime.time.min
datetime.time(0, 0)
>>> datetime.time.max
datetime.time(23, 59, 59, 999999)

それをインスタンスと組み合わせdatetime.date、完全なインスタンスを取得できますdatetime.datetime

>>> datetime.datetime.combine(datetime.date.today(), datetime.time.max)
datetime.datetime(2012, 12, 1, 23, 59, 59, 999999)

datetime.datetime既存のインスタンスを再利用するには、メソッドをインスタンスのメソッド.combine()と一緒に使用して、新しいインスタンスを作成します。.date()datetime.datetimedatetime.datetime

>>> datetime.datetime.combine(datetime.datetime.now().date(), datetime.time.min)
datetime.datetime(2012, 12, 1, 0, 0)

一連の日付を取得するには、datetime.timedeltaインスタンスを使用してオフセットを作成します。今日を基準とした一連の日付は簡単です。

today = datetime.date.today()
lastweek = today - datetime.timedelta(days=7)
for i in range(7):
    aday = lastweek + datetime.timedelta(days=i)
    first = datetime.datetime.combine(aday, datetime.time.min)
    last = datetime.datetime.combine(aday, datetime.time.max)
    print first, last
于 2012-12-01T17:11:47.287 に答える