HACKER Q&A
📣 xiwenc

What does 12:00 AM mean?


Today I missed my online exam because I was 12hours late. Being European and engineer I was used to 24hours notation. “12:00 AM” was interpreted as 12:00 noon in my head. In retrospect i’m disappointed Pearsonvue (in this case) does not write these times in universal format or even better, attach an ics file upon schedule confirmation.

My question to you is: did you run into this kind of mistakes also? How do we solve this more universally?


  👤 technobabbler Accepted Answer ✓
You have to learn other cultures' norms if you want to live or work with them. It goes both ways.

Europe and America do not only time differently, but phone numbers (1-800-123-1234 in the USA, 06 86 57 90 14 in France), dates (Jan 1 1911 would be 1/1/11 in the USA, 11-1-1 elsewhere), decimals (1,000.00 or 1.000,00), units (inches vs centimeters), reading order, daylight savings time, time zones (some countries don't even have them), etc. To say nothing of language and cultural differences, just formatting basic facts.

You don't solve it "universally", you make affordances for diversity the same way you allow for light/dark mode or language or any other user preference.

Not even all calendars have proper embedded time zone information so that's not always reliable either.

There is Unix time but you still have to convert that according to arbitrary rules, especially for countries that observe variable daylight savings like the US.

It gets even harder when you have to do math, like 00:00 Jan 1 1970 plus 30 years isn't automatically midnight of Jan 1 2000. It depends on whether you mean 30 * 365 24-hour days or some # of quartz vibrations or 30 * orbits around the sun or 30 * years of a certain country's time (adjusted for leap years and leap seconds and daylight savings and time zone changes mandated by new laws). There is no "right" answer. Libraries like Luxon or Momoent can help, but it's never easy.

That's just the reality of a multicultural business world. When in doubt, double check and reconfirm.


👤 DonaldFisk
Yes. I wish people would stop using that, as it confuses me, just as it confused you. AM = ante meridiem, before noon. PM = post meridiem, after noon. It makes no sense to say midday (meridies in Latin) is before noon or after noon, it's exactly at noon. If you're going to use a 12 hour clock, to avoid confusion, you should write "12 noon" or "12 midnight". That way the confusion is avoided. Alternatively, switch to a 24 hour clock, and if it's international use UTC. And if you can't do that, start your event a minute later: 12:01pm is unambiguously one minute after noon.

👤 dijit
Ante meridium and post meridium.

Ante- meaning “before”, meridium meaning “highest point of the sun” as in when the sun crosses the “meridian” which would be the line in which it is now setting instead of rising.

Passing from post-meridian to ante-meridian is exactly 12 hours from when the sun passed the meridian point, to keep it “consistent”.

I get though that it’s confusing, I questioned it a lot as a young boy.

Personally I believe that is stupid that we go from 11pm to 12am, but the reason is that the cutover is “12”, and everything after 12 (including the hour) are considered morning.

Like others have mentioned, we should really be using 24hr time these days where possible. Additionally I’m of the impression that we should use ISO8601 for date formats instead of what the Uk does (or even worse: what the US does).


👤 rogual
Imagine if 12AM meant 12 noon. What would one second past 12 noon be? It'd have to be 12:00:01 PM. Even one millisecond past 12 noon would be PM. So "12AM" could only exist for an infinitesimal length of time, in contrast to 11AM, 10AM etc. which each last for an hour.

👤 Quikinterp
A lot of my exams will use the time 11:59pm instead of 12:00am to avoid confusion like this

👤 signal11
The English-language convention I was taught is that 12am is midnight — the rationale I was given was that 02:00:00 is 2am without ambiguity, and 00:00:01 is 12:00:01am without ambiguity, so 00:00:00 gets to be 12am.

I have no idea if that’s a good explanation, but it helped contextualise what in the end is a convention.

In my personal experience most English-speaking people will either say “midnight” or use the military convention of 00:00 or 24:00 hours.

Royal Observatory Greenwich explains it succinctly[1]:

> When most people say 12pm, typically they're talking about the middle of the day: 12 noon. When they say 12am, they normally mean 12 midnight.

> While most people follow this convention, technically it's not quite right – as you'll see from the definition of am and pm below. To avoid any confusion (and to make sure you arrive on time), it might be best to say 12 noon or 12 midnight instead.

US English is similar[2]:

> The American Heritage Dictionary of the English Language (Fourth Edition, 2000) has a usage note on this topic: "Strictly speaking, 12 a.m. denotes midnight, and 12 p.m. denotes noon, but there is sufficient confusion over these uses to make it advisable to use 12 noon and 12 midnight where clarity is required."

> Many U.S. style guides, and NIST's "Frequently asked questions (FAQ)" web page, recommend that it is clearest if one refers to "noon" or "12:00 noon" and "midnight" or "12:00 midnight" (rather than to "12:00 p.m." and "12:00 a.m."). Some other style guides suggest "12:00 n" for noon and "12:00 m" for midnight.

[1] https://www.rmg.co.uk/stories/topics/noon-12-am-or-12-pm

[2] https://english.stackexchange.com/questions/66633/is-it-corr...


👤 Eddy_Viscosity2
Years ago I missed a night international flight because of this. It left at 12:00 am (midnight) Nov.10, but to me that meant at the end of the day so I show up 3 hours early at 9pm on Nov.10, only to find out the flight left 21 hours ago. I should have arrived 9pm Nov.9 to catch the plane at 12:00am which technically was the very start of Nov.10.

I've noticed that they no longer post 12:00am as a flight time. Instead it would be listed a few minutes before, like 11:55pm Nov.9.


👤 mauvehaus
The way to remember this that finally clicked for me is that 'A' means 'ante', 'P' means 'post', and 'M' means Meridian some Latin word that means the sun is directly overhead. Or more practically speaking: noon.

12:00 PM is noon because one minute later, the sun is past being directly above. That is, it's 12:01 Post Meridiem. Since it would obviously be nonsensical for 12:00 AM to be immediately followed by 12:01 PM, noon is 12:00 PM by convention.

Extending this logic to midnight is left as an exercise to the reader.

Don't feel bad, I don't think anybody explained this to me until I was almost 30.


👤 njkleiner
Okay, I'm genuinely confused now, can someone please explain this to me?

First of all, how is nobody taking about the fact that OP was scheduled for an exam that takes place... at midnight.

There are two possible cases here.

Some people are alleging that OP lives in the same place as the exam takes place -- which is not clear to me from the information available -- and use this as an excuse for saying "OP should adopt to local customs".

But that would imply the exam takes place on midnight in local time. Is that actually a thing? Like, is this normal? Why on earth would anyone assume that's the case in an ambiguous situation like this, I can see why you would assume it's at noon without giving it too much thought.

The second case is that OP not in the same place (e.g. the given time at midnight does not match OP's local time), but in this case I blame the institution for allowing people to attend exams remotely while not properly accommodating for time differences.

While 12:00 AM/PM may be technically valid time descriptions, I was under the impression that it was common (in places that use the 12 hour system) to instead write 12:00 noon/midnight specifically to avoid this.

From what I understand, Americans are confused by this too, so why are people so eager to blame Europeans, rather than the system?

Second, I don't understand people saying they use 11:59/12:01 AM/PM as a mnemonic. This makes no sense to me as 00:01 a valid time. How do the above times resolve anything, when all you do is increase/decrease the time, relative to the label, which is what makes it confusing in the first place.

I don't understand how I'm supposed to know which of AM/PM 00:01 refers to, unless I already know what AM/PM means.

Third, people making comparisons to reading an analog clock. When I read an analog clock, I get a time in a 12 hour window. Fair enough. But when I then translate it to 24h, what I do is use my knowledge of whether it is currently day or night to translate it. Which has nothing to do with memorizing which label is which. Analog clocks don't have AM/PM labels so how would this make any more sense?


👤 fidgetspinoza
I remember it like this: when it says 12:00 AM that means that the AM is getting started (midnight) and at 12:00 PM the PM is getting started (midday)

👤 ju-st
I always look it up on Google. I regularly run into this kind of problem when looking at log files which use AM/PM time. Related question: How do you even say "14:00" in English? In school I learned that you say o'clock but I never heard that in real life.

👤 amarshall
There is no universally agreed upon definition. This is why some may use either 12:01 AM or 12:01 PM to avoid ambiguity. Or “12 noon” and “12 midnight”. Of course, the “obvious” answer is to just use 00:00 and 12:00.

Lots of folks here are trying to logically determine which use is “correct”, but it doesn’t really matter much if the reader doesn’t agree and misinterprets. So the best option is to use an unambiguous alternative like above.

For more, see https://en.wikipedia.org/wiki/12-hour_clock#Confusion_at_noo...


👤 mhogomchungu
Each african here and in Swahili time, the day starts at 7:00 AM and ends at 6:59PM and night starts at 7:00 PM and ends at 6:59AM.

So, I would read "12:00 AM" as "six hours into the night" since its been 6 hours since the night has started.

I would also read "12:00 PM" as "six hours into the day" since its been six hours since the day has started. Speaking it, i would say "saa 6 mchana" and the literal translation is "time 6 noon".

I and most people here always set time in AM/PM format and i always have to first convert it to swahili time before making sense of it.


👤 BadOakOx
The best is how it is 11AM -> 12PM -> 1PM -> 2PM and then again 11PM -> 12AM -> 1AM -> 2AM

👤 amalcon
For historical reasons[0], with 12-hour clocks, 12 is generally treated as zero. A general fix for this is probably something like Linux locale settings. It's going to be a rather flawed solution, what with those settings being super complicated.

[0]- Lore is that the sundial and dividing the day into 12 sections happened before the invention of the number zero, but I don't know if this is accurate.


👤 paulcole
> How do we solve this more universally?

Use this as an opportunity to realize that moving forward you need to be sure about times — especial for things that really matter. Using your European-ness and the fact that you’re an engineer isn’t an excuse. You can be disappointed in software and other people for the rest of your life and keep missing important appointments if that’s what you want.


👤 beej71
For a mathy approach for programmer types, let's switch to decimal hours for a moment. So 12.0 noon is a time, and 12.99 PM is just shy of 1.0 PM.

So is midday AM or PM?

I think we can agree that 30 minutes after noon, or 12.5, is PM.

And we probably also agree that 12.1 would be PM as well.

And 12.0001, that's PM.

We can put as many zeros in there as we want, and it's still PM.

Now put infinity zeroes in there, and you're "at" 12:00 (since that's what the clock now reads) and it's still PM.

A shorthand version of this is if you look at the clock in the middle of the day and it says 12:00, is it exactly 12:00 that very instant? Or is it, infinitely more probably, a little bit past that time? If you know it's a little past 12:00, you know if it's AM or PM.

As for how to fix it, either "noon"/"midnight" or universal 24-hour clocks or memorize that noon is 12 PM. :)


👤 TrianguloY
12 is 0, that's how analog clocks display time, and that's the only way to make sense of the strange numbering (12->1->2-...>11? What?).

Maybe because Romans didn't have 0? Apparently not, the reason comes from before them, but analog clocks are commonly written with Roman numerals so it's a way to remember this.


👤 spacec0wb0y
Using 24hr clock.

It would have been 00:00 for you.


👤 hnbad
There's no logic behind this. Even if you go by the reasoning that 12 PM is noon because any time after exactly 12 PM sharp is post-meridian if the meridian is exactly at 12, it shouldn't be 12 but 0. Having an intentional off-by-one error in your date format is simply bad design and counterintuitive.

The 12 hour date format with AM/PM is asking for trouble and it's at least partially their fault that you got this wrong, especially if they schedule appointments at unusual times and expect you to find noon and midnight equally reasonable. They could have avoided this easily but their lack of accomodation shows an intentional disregard.

If it's any consolation, Pearson is infamous for horrible exam designs, so at least they're not uniquely shitty towards non-Americans.


👤 reedf1
I think it makes sense in a world where reading a clock face is common (12 gradations repeating twice is easier to read at a glance than 24 gradations), but in a modern world that is international and the primary timekeeper is a phone, I don't think it is defensible.

👤 rsstack
When working at international companies that have little interaction between countries (i.e. not so much that it would be standardized, but enough that it would be an issue): eventually everyone learns to write dates and times in both ways (14:00 / 2pm, 4/12 / 12 April). The Europeans think that they're translating for the "dumb Americans who can't count higher than 12", the Americans think they're translating for the "quirky Europeans who have to do everything special".

But to your question, yes 12:00 AM is midnight. It's the 12 o'clock that's at/after midnight, while 12:00 PM is the 12 o'clock that at/after noon.


👤 softwarebeware
This is actually a great post about UX. Most sites like eBay or Expedia have location-specific versions that change dates and times among other things to the user’s format. It’s totally legit to expect that in 2022.

That said, UTC is universal also.


👤 helsinkiandrew
It could be worse - before 1805 on a Royal Navy ships PM would come before AM:

"Up to late 1805 the Royal Navy used three days: nautical, civil (or "natural"), and astronomical. For example, a nautical day of 10 July, would commence at noon on 9 July civil reckoning and end noon on 10 July civil reckoning, with PM coming before AM. The astronomical day of 10 July, would commence at noon of 10 July civil reckoning and ended at noon on 11 July"

https://en.wikipedia.org/wiki/Nautical_time#Nautical_day


👤 sirfrankiecrisp
I remember having the same problem as a Swiss exchange student in high school in the US.

I missed a perfect score in my first geography exam there, where we had to calculate timezone, exactly because of this... I thought it was so much more logical to have 12am follow 11am... I was very annoyed to not get 100 in that exam just for such an annoying format...

In retrospective it does make sense actually... as soon as you pass noon (meridium) you are in the post-meridian, not ante anymore...

Better would be if the formst would use 00:00am and 00:00pm... This way you would have a switch from am to pm and v.v. when the time goes from 11:59 to 0, i stead of to 12.


👤 jwalton
If 12 is midnight or noon, then 12:00am has to be midnight. If 12:00am was noon, then 12:59am would be in the afternoon, which would be weird. Of course, having your clock start at 12 and then go to 1 is also weird.

👤 SahAssar
I'd be triped up too... to me it makes no sense that it goes 11AM, 12PM, 1PM. That it keeps the number sequence, switches the AM/PM, and then an hour later wraps the number sequence is just odd.

👤 kashyapc
It reminds me of a similar problem I face in Dutch (and still trip up if I'm not conscious):

In Dutch (my 4th language), "half nine" ("half negen") means 8:30. Whereas in English[1] "half nine" means 9:30.

So there were times when I missed appointments by an hour! After 7 years of being immersed in the language, I still have to deliberately engage my brain whenever someone says "half nine" (or whatever the hour) in Dutch to carefully translate it to the correct time.

[1] British and Irish English only? Others can correct me here.


👤 xiwenc
I’m baffled to see those in favor of AM/PM notation fail to acknowledge there is a better, less confusing, alternative. Can we call this “technical” debt?

I really like the idea of saying 11:59PM instead. Despite feeling like a duck tape solution.

What bothers me more is that internet companies offer services to the global consumer. These services should work for the customer. Not force some cultural or demographic habit on global population. Instead, use non-ambiguous notation like 24h or express noon/midnight explicitly.


👤 tomrod
That sounds really frustrating. I'm sorry that happened to you.

Time is a hard programming and engineering problem. Adopting a global UTC on a 24 hour clock would resolve most of this, but people are entrenched.


👤 MrRadar
Look at an analog 12-hour clock. Ask yourself what the "natural" way to read it at midnight would be (what number is the hour hand pointing towards)?

👤 Markoff
Pff, this is nothing, I was just today explaining to client that phrase "...will switch off at VARIABLE midnight." where variable is number 12 is complete nonsense, maybe it is acceptable in English, but certainly not in most of the languages, since midnight is midnight and there is no 12 or 24 midnight, it's either 12PM, 24:00 OR midnight, but not some digit together with midnight

👤 keiferski
I always just write 11:59 P.M or 11:59 A.M. to make this less confusing. Especially because the people setting the time are prone to making the same mistake when scheduling the event.

For example:

...the discount expires at 11:59 P.M. on Thursday, March 24, 2022.

is far less confusing than:

...the discount expires at 12:00 A.M. on Friday, March 25, 2022.

At a quick glance, it's easy to think this means late Friday night, since we see the word Friday.


👤 rexf
12a vs 12p is pretty confusing. Appending noon or midnight is super helpful in calendar apps. E.g., "12p (noon)" or "12a (midnight)"

Self plug: I built a super simple visualization page to help figure out which is which https://xta.github.io/am-pm-visualized/


👤 dudul
Sorry it happened to you. Yes it would have been better for this institution to send a true calendar event or something that would adapt to each person's local TZ.

That being said, I just googled "12.00 AM" and the very first result is "12.00 AM is midnight". Pretty unambiguous.

If you had never seen this notation before, being an engineer, why didn't you just look it up?


👤 ZetaZero
So as a programmer, one way to look at it, 1:00AM to 12:59AM should be in order, meaning 12:00AM is at noon, and the switch to PM happens at 1PM. But this is wrong. Zero-indexing would have helped here.

It really irks me that we stick with these anachronistic standards. 00:00-23:59 seems so much better. Metric system is better. I'm for English-language spelling reform.


👤 Yosemite_Sam
If something that I can't miss is listed in a different time zone than the one I'm in I go online and find a time zone converter. You can just tell it '12am in x city' and there is another box where you enter your own location and it doesn all the work for you.

👤 OrangeMonkey
I am native to the united states and, to this day, I still do not fully get what time "12:00 AM" and "12:00 PM" mean. I try to set meetings for 12.01PM. If I absolutely must meet exactly at noon, I start the meeting "at noon".

👤 Ferrotin
To answer the question: as an American, I learned 12:00 AM was midnight at one point when I was a kid. Before then, I was unsure whether noon was 12 AM or 12 PM. I made sure to remember that special fact, with no mnemonic or rationale, in the future.

👤 KolenCh
A classic problem similar to this would be a flight. If you got a flight departing at 12:40am, make sure you really know what it means.

There’s too many people making this mistakes and sometimes the airline might help you out but not always.


👤 eps
12pm is something that you routinely see in the "day" life - opening/closing times, appointments, etc. That's the one I know.

12am is the other one, so it's at night. I have to deduce every time I see it.


👤 markus_zhang
In my country we usually say 0:00AM and 12:00 noon (neither am nor pm). After coming to NA I'm gettimg used to 12:00am and 12:00pm. But yeah in the beginning it takes some time.

👤 Koiwai
I guess people solve this by not doing business around that time.

👤 xiwenc
Op here. Update from Pearson Vue: they refunded the exam price.

👤 kuroguro
Obviously you specify a unix timestamp! /s

👤 a-dub
i think the moral of the story is that presentation formats for dates and times should follow the end user's locale.

👤 akarve
Use a calendar app. It parses and translates appointments into local time as an essential part of its existence.

👤 Sosh101
If a time included either "AM" or "PM" then I would assume it was specified as 12h, not 24h.

👤 ape4
Say "noon" or "midnight". ya, I know that's cheating.

👤 goosedragons
Do Europeans just not have analog clocks or watches anymore?

👤 tsujp
12 AM is midnight. 12 PM is noon.

👤 aerojoe23
Did you get to take your test?

👤 tacostakohashi
Do you know what 12:01 AM means?

12:00 AM is one minute before that.