¿Cómo obtengo la hora UTC de "medianoche" para una zona horaria determinada?
Lo mejor que puedo encontrar por ahora es esta monstruosidad:
>>> 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)
Es decir, en inglés, obtenga la hora actual (en UTC), conviértala en otra zona horaria, configure la hora en medianoche y luego vuelva a convertirla en UTC.
No solo estoy usando now () o localtime () ya que eso usaría la zona horaria del servidor, no la zona horaria del usuario.
No puedo evitar sentir que me falta algo, ¿alguna idea?