12 a.m. or 12 p.m.… for noon or midnight?
This is perhaps the trickiest time question of them all. The best answer is that the terms 12 a.m. and 12 p.m. cause confusion and should not be used.
To illustrate this, consider that "a.m." and "p.m." are abbreviations for "ante meridiem" and "post meridiem." They mean "before noon" and "after noon," respectively. Of course, noon is neither before nor after noon; it is simply noon. Therefore, neither the "a.m." nor "p.m." designation is correct. On the other hand, midnight is both 12 hours before noon and 12 hours after noon. Therefore, either 12 a.m. or 12 p.m. could work as a designation for midnight, but both would be ambiguous.
To get around the problem, the terms 12 noon and 12 midnight should be used instead of 12 a.m. and 12 p.m. For example, a bank might be open on Saturday from 8 a.m. to noon. Or, a grocery store might be open daily until midnight. If you are making schedules, times such as 12:01 a.m. (one minute after midnight), or 11:59 p.m. (One minute before midnight) also can eliminate ambiguity. This method is used by the railroads and airlines.”
National Institute of Standards and Technology http://physics.nist.gov/News/Releases/questions.html