Hora Noda: inicio / final del día con zona

¿Cuál es la forma correcta y más concisa de obtener los ZonedDateTime (s) que representan el inicio y el final del día actual en la zona horaria establecida en el sistema en el que se ejecuta el código?

¿No es el siguiente código demasiado complicado?

ZonedDateTime nowInZone = SystemClock.Instance.Now.InZone(DateTimeZoneProviders.Bcl.GetSystemDefault());

ZonedDateTime start = new LocalDateTime(nowInZone.Year, nowInZone.Month, nowInZone.Day, 0, 0, 0).InZoneStrictly(DateTimeZoneProviders.Bcl.GetSystemDefault());

ZonedDateTime end = new LocalDateTime(nowInZone.Year, nowInZone.Month, nowInZone.Day, 23, 59, 59).InZoneStrictly(DateTimeZoneProviders.Bcl.GetSystemDefault());

Dados esos valores, necesito probar si hay otro ZonedDateTime entre ellos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta