def parse_time_range(start_dt, end_dt):
    """
    Convert the start/end datetimes specified by the user, specifically:
    - truncate any minutes/seconds
    - for a missing end time, use start + 24 hours
    - for a missing start time, use end - 24 hours
    - for missing start and end, use the last 24 hours
    """
    now = datetime.now()

    if start_dt and not end_dt:
        end_dt = now

    elif end_dt and not start_dt:
        start_dt = _EARLIEST_DATE

    elif not start_dt and not end_dt:  # last 24 hours
        end_dt = now
        start_dt = end_dt - timedelta(days=1)

    return tuple(map(truncate_hour_fraction, (start_dt, end_dt)))