Though there is no global unanimity on the issue, most often midnight is considered the start of a new day and is associated with the hour 00:00. Even in locales with this technical resolution, however, vernacular references to midnight as the end of any given day may be common.
Does the day start at 12 or 1?
It's neither. The new day begins at the beginning of 12:00:00 AM, not the end of 12:00:00 AM. Because most clocks will pause for one second (all clocks pause for a time, depending on how accurate it is will determine for how long) before changing to the next second.
Is 0000 the start of a new day?
Another option would be to use 24-hour clock, using the designation of 0000 to refer to midnight at the beginning of a given day (or date) and 2400 to designate the end of a given day (or date).