0

同様の質問( https://stackoverflow.com/a/2031297/940208)に対する他の回答からいくつかの提案を試しましたが、これまでのところ次のとおりです。

t = datetime.datetime.today()
tomorrow = datetime.datetime(t.year,t.month,t.day+1,10,0)

問題は、月の最終日がある場合、これが失敗することです。

ValueError: day is out of range for month

では、このような状況を含めるために、このステートメントを (最終日であることを検出しようとする IF 条件にラップせずに) 書き直すにはどうすればよいでしょうか?

別の質問は、そのようなタイマーのタイムゾーンとは何ですか?現在の(システム)タイムゾーンでどのように作業できますか?

4

1 に答える 1

1

とを使用datetime.datetime.replacedatetime.timedeltaます。

tomorrow = t.replace(hour=10, minute=0, second=0, microsecond=0) + \
           datetime.timedelta(days=1)

代替案:

tomorrow = datetime.datetime.combine(t.date(), datetime.time(10)) + \
           datetime.timedelta(days=1)

tomorrow = datetime.datetime(t.year, t.month, t.day, 10) + \
           datetime.timedelta(days=1)
于 2013-09-04T08:56:16.020 に答える