前提
事前にdatetimeをimportしておきます。
from datetime import datetime
その日の0時0分0秒のdatetimeインスタンス
replaceを使って無理やりその日の0時0分0秒にします。
datetime.now().replace(hour=0,minute=0,second=0,microsecond=0)
実行結果
>>> datetime.now().replace(hour=0,minute=0,second=0,microsecond=0)
datetime.datetime(2015, 8, 22, 0, 0)
応用
タイムゾーンを考える
pytzを利用してタイムゾーンに対応してみます
>>> import pytz
>>> tz = pytz.timezone('Asia/Tokyo')
>>> datetime.now(tz).replace(hour=0,minute=0,second=0,microsecond=0)
datetime.datetime(2015, 8, 22, 0, 0, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)
その年の元日の0時0分0秒のdatetimeインスタンス
上記に加えて1月1日であればよいので以下の通り。
>>> import pytz
>>> tz = pytz.timezone('Asia/Tokyo')
>>> datetime.now(tz).replace(month=1,day=1,hour=0,minute=0,second=0,microsecond=0)
datetime.datetime(2015, 1, 1, 0, 0, tzinfo=<DstTzInfo 'Asia/Tokyo' JST+9:00:00 STD>)