Edge Cases & Conventions
Midnight in Military Time
Midnight sits at an awkward seam in the 24-hour clock — it's simultaneously the end of one day and the start of the next. The question of whether to write it as 0000 or 2400 has a precise answer: both are valid, but they are not interchangeable.
The Short Answer
0000 vs 2400 — What's the Difference?
Start of day. The first moment of a new calendar date. When a day begins at midnight, it begins at 0000. Military operations orders, flight schedules, and digital systems universally use 0000 to represent the open of a new day.
Example: a curfew effective "0000 on 15 March" means the very first second of March 15th.
End of day. The final moment of a calendar date. Used exclusively to mark the close of a period — contracts, schedules, and logs that end "at midnight" often specify 2400 to make clear they mean the end of that day, not the start of the next.
Example: a contract expiring "2400 on 14 March" ends at the last second of March 14th — the exact same moment as 0000 on March 15th.
Reference Table
0000 vs 2400 — Side-by-Side
| Notation | What It Means | Used By | Example Context |
|---|---|---|---|
| 0000 | Start of a new day (Day D, 00:00) | Military, aviation, digital clocks, hospitals, ISO 8601 | Operations begin at 0000 on D-Day |
| 2400 | End of the current day (Day D, 24:00) | Legal contracts, rail/bus schedules, some healthcare systems | Deadline: submit by 2400 on Friday |
| Both | Physically identical moment in time | — | 0000 Jan 15 = 2400 Jan 14 |
2400 Is Technically Valid — But Rarely Used in Practice
ISO 8601 explicitly permits 24:00:00 to represent the end of a day (equivalent to 00:00:00 of the following day). So "2400" is not wrong — it has a defined, standard meaning.
In practice, however, most military, aviation, and medical professionals use 0000 exclusively. Many systems refuse to accept 2400 as input. If you write 2400 in a military context, expect questions. Stick to 0000 unless you are specifically marking the terminal boundary of a period (e.g., a contract or log entry end time).
Military Convention
How the US Military Handles Midnight
The US military exclusively uses 0000 for midnight. Military operations orders, field manuals, and doctrine documents all reference the start of a day as 0000 hours. The notation "0001" is used for one minute past midnight when distinguishing the very start of a period is operationally important.
In military communications, ambiguity kills — literally. The convention that 0000 = start of day eliminates any confusion about which side of midnight an order falls on. An operation scheduled for "0000 on 6 June" is unambiguously the beginning of June 6th, not the end of June 5th.
For planning purposes, the military day runs from 0001 to 2359 when a continuous 24-hour period needs to be expressed without ambiguity at either end. Duty rosters and watch bills often show shifts ending at "2359" and new shifts beginning at "0001" to prevent overlap or gap at the midnight boundary.
Healthcare Practice
How Hospitals Handle Midnight
In clinical settings, midnight is one of the most dangerous times for medication errors. A dose ordered for "midnight" in 12-hour notation is frequently confused — was that the midnight at the start of the patient's stay date, or the midnight at the end?
The Joint Commission on Accreditation of Healthcare Organizations (JCAHO) recommends that hospitals avoid using "12:00 AM" and "12:00 PM" entirely, and instead use 0000 (midnight) and 1200 (noon) in 24-hour notation to eliminate confusion.
Some hospital medication administration records (MARs) use 2400 to mark the last scheduled dose of a day, then switch to 0000 for the first dose of the next. This is one of the few real-world contexts where 2400 appears consistently in professional practice.
Patient safety note: "NPO after midnight" instructions in surgical prep are typically clarified as "NPO from 0000" to make the cutoff unambiguous on a 24-hour clock. This prevents patients from misinterpreting when they must stop eating.
ISO Standard
What ISO 8601 Says
ISO 8601 — the international standard for date and time representation — explicitly addresses the midnight edge case. The standard allows both 00:00:00 (start of day) and 24:00:00 (end of day) as representations of midnight, with the following constraint: 24:00:00 may only be used to indicate the end of a calendar day, not any other context.
In practice, most ISO 8601 compliant software implementations only accept 00:00:00 for midnight. Attempting to store or transmit "24:00:00" in most databases, APIs, or programming languages will result in a parse error. Python's datetime, JavaScript's Date, and SQL standard time types all reject hour values above 23.
The takeaway for developers: always use 00:00:00 (or 0000 in military notation) when working with timestamps. Reserve any awareness of 2400 for interpreting legacy documents or schedules that use that convention.
Technology
Why Digital Clocks Always Show 0000
Every digital clock, computer, smartphone, and timekeeping device in the world rolls over to 00:00:00 at midnight — never to 24:00:00. This is not a design choice; it is a mathematical necessity. A 24-hour clock counts hours 0 through 23. The number 24 does not exist in that range — it is the modulus rollover point back to 0.
Clock hardware counts seconds since some epoch (midnight on a reference date) and converts that count to hours, minutes, and seconds using division. The result is always in the range 0–23 for hours. There is no natural representation of "24" in this system.
This is also why GPS time, Unix time, NTP (Network Time Protocol), and all computer-based timekeeping systems use 0000 exclusively. The concept of 2400 is a human scheduling convention, not a property of how time is actually measured.
Common Errors
Mistakes to Avoid at Midnight
Writing "1200 midnight"
1200 is noon, not midnight. This is one of the most common 24-hour clock errors. Midnight is 0000. Noon is 1200. The confusion arises from 12-hour clock habits where "12:00" appears twice — once for noon (12:00 PM) and once for midnight (12:00 AM). In military time, only 1200 exists, and it means noon.
Using 2400 in software or digital systems
Never enter 2400 into any digital system expecting it to be accepted. Most systems will return an error, interpret it as invalid input, or silently convert it to something unexpected. Use 0000 in all digital contexts.
Ambiguous date assignment
"Midnight on Tuesday" is ambiguous — it could mean the midnight that starts Tuesday (0000 Tuesday) or the midnight that ends Tuesday (2400 Tuesday / 0000 Wednesday). Always pair a midnight time with the date it opens, not the date it closes. Write "0000 15 March" not "midnight on 14/15 March."
Confusing 0000 with 0001
In military operations, there is sometimes a deliberate distinction between 0000 (midnight exactly, the theoretical boundary) and 0001 (one minute into the new day, clearly within the new date). Some units use 0001 to unambiguously indicate "after midnight" when the edge case matters for orders.