Лучшее, что я могу придумать, - это это чудовище:
>>> datetime.utcnow() \
... .replace(tzinfo=pytz.UTC) \
... .astimezone(pytz.timezone("Australia/Melbourne")) \
... .replace(hour=0,minute=0,second=0,microsecond=0) \
... .astimezone(pytz.UTC) \
... .replace(tzinfo=None)
datetime.datetime(2008, 12, 16, 13, 0)
I.e., на английском языке, получить текущее время (в UTC), преобразовать его в какой-либо другой часовой пояс, установить время до полуночи, а затем преобразовать обратно в UTC.
Я не просто использую now() или localtime(), поскольку это будет использовать часовой пояс сервера, а не часовой пояс пользователя.
Я не могу не чувствовать, что я что-то пропускаю, любые идеи?