>> Since you want to avoid all ambiguity, the ONLY way to do it is to
>> use the 24 hour clock (BTW, also specified on the NIST site.) So
>> this discussion is pointless.
Yes. I tried that, but my users rejected it.
I can deal with the once in a while event scheduled or happening at
midnight by telling the user that they must enter 11:59 pm or 12:01 am
to resolve the date ambiguity. That's possibly better than simply
using 24-hr time, because real people will still sometimes get confused
about which day 0:00 or 24:00 falls on. But I don't want to have to
break up the users' workflow or mindflow with having to explain or
verify the timing of every 12:00 event. If the widget says 'Noon' or
'12 N.' for noon and 'Midnight', '12 Mid', or even the somewhat
ambiguous '12 M.' for midnight, then there's a much better chance there
is no misunderstanding between user and program at that point.
I don't have a TV set in my house now, let alone a VCR. Someone
tell me, please, what does you VCR show when you try to program it
to start recording at precisely noon or midnight?
There are two commonly accepted standards used around the world. One is
twenty-four hour time, which is used whenever people want to be exact and
unambiguous without having to add extra letters onto the time. With
twenty-four hour time, 00:00 is midnight and on the same day as 00:01.
There is no such time as 24:00 - the last minute of the day is 23:59. With
twelve hour time, 12:00 am is midnight of the same day as 12:01 am, and
12:00 pm is noon. The last minute of the day is 11:59 pm.
These are accepted standards throughout most of the world, and there is no
ambiguity. The reason for "12:00 pm" being noon is quite simple - when you
write "12:00 pm" you actually mean the minute that starts at the instance of
noon, and continues up to the instance of 1 minute past noon, at which time
the minute labelled "12:01" begins. (Think about the time 12:00:30 to see
why it must be defined in this way). Thus the minute labelled "12:00"
starting at noon must be called "pm" - there is no possibility of it being
"am".
Look at any digital watch or alarm clock - you will not find one that
differs from this, or has any extra unknown invented "conventions" such as
"12 Mid".
I don't know what your application is, but you might find it easier for
users to choose a time from a list - no one could possibly be in doubt when
choosing 12 pm from between 11 am and 1 pm.