¿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?

Respuestas a la pregunta(4)

Su respuesta a la pregunta