Тут вот в чем засада. Фраза "12 часов ночи" в русском языке - это ловушка, потому что технически у нас нет устоявшегося стандарта как в английском (где есть 12 AM и 12 PM с их четкими определениями).
По ISO 8601 и РД 50-673-88 сутки начинаются с 00:00:00 и заканчиваются 23:59:59. Момент 24:00 допускается только для обозначения конца конкретных суток, но не начала следующих.
Полдень: 12:00:00. Полночь: 00:00:00 (начало новых суток).
Если в договоре, расписании или документе написано "24:00 31 января" - это строго говоря последний момент 31 января. А "00:00 1 февраля" - первый момент уже февраля. Один и тот же физический момент, но разная юридическая привязка к дате.
Спасибо, вот теперь понятно наконец!