Excelの時刻の12時間表記

Excel の時刻の12時間表記に違和感を感じたという話です。
結論を先に書くと、英語圏の時刻の表現はこうなのだそうです。

Excel の書式設定の仕様

時刻の書式設定 h:mm(24時間表記)とh:mm AM/PM(12時間表記)の表示のされ方を比較してみます。

  • C列とD列の比較です
  • B列に値を入れ、C列とD列はB列を参照しています
Excel time 1

違和感を感じたのは、12:00 AM12:00 PM です。
感覚的に24時間表記の0時と12時のどちらに該当するのか分からないです。その理由は具体的に以下によるものだと思われます。

  • 12:00 AM の1分前は11:59 AM ではなく11:59 PM
  • 12:00 PM の1分前は11:59 PM ではなく11:59 AM

ついでに確認したこと

書式設定のhAM/PM の関係が気になったので、書式設定がhh AM/PM だけのパターンも追加してみました。

  • E列とF列を追加しました(B列を参照しています)
Excel time 2

特に変わったことは起きなかったのですが、これで分かったことは、hAM/PM の有無で表現が変わるということです。
F列のAM とPM が表示されないだけの状態にはならないようです。

Microsoft のサイトにもこの辺のことが仕様として書かれていました。

AM と PM     形式に AM または PM が含まれている場合、時間は 12 時間のクロックに基づいており、”AM” または “A” は午前 0 時から正午までの時刻を示し、”PM” または “P” は正午から午前 0 時までの時刻を示します。 含まれていない場合、24 時間表示に基づきます。

Microsoft サポート

ちなみに、h AM/PM は「このセルに適用されている数値の書式は誤解を招く可能性があります」という警告を表示してくれます。
その通りだと思います。

午前と午後の定義、時刻の表現のされ方

時刻表記には何かしらの規格がありそうだったので、この仕様の根拠となる情報がないか検索して調べてたのですが、結論としては冒頭で述べた英語圏の時刻の表現のようです。規格は見つかりませんでした。

調べる過程で時刻の扱いについて興味深い話がいろいろあったので、記録として記載しておきます。

  • 午前と午後の定義
    • 正午(太陽が地平線より上で子午線を通過する時刻)より前が午前(AM)、後が午後(PM)
    • 0時から12時間後までが午前、12時から12時間後までが午後ではない
  • 23時間表記の0時と12時の表現
    • 0時は「午前0時」、「午後12時」のどちらで表現してもよい
    • 12時は「午後0時」、「午前12時」のどちらで表現してもよい
  • アナログ時計の影響
    • アナログ時計が時刻を1から12の数字で表現されていることから、以下のような表現が慣習的に使われている
      • 0:30 を「午前12時30分」と表現
      • 12:30 を「午後12時30分」と表現
  • 英語圏の時刻の表現
    • 0:00 を「12:00 AM」
    • 12:00 を「12:00 PM」

あとがき

時刻を正確に伝えるのであれば、24時間表記(0時〜23時)で表現すれば間違えなさそうです。

ただ、19:00 であれば「午後7時」と表現した方が、相手に19時-12時=7時(午後)のような計算をさせずに済むので、日常会話では午前/午後を付けた12時間表記で表現した方がよさそうです。
問題の0時台と12時台ですが、これは午前/午後ではなく昼/夜を付けた12時間表記で表現すれば間違えて伝わることを避けることができそうです。

Excel 以外はどうなのだろうと思い、Google スプレッドシートとLibre Ofiice を確認してみるとExcel と同じでした。Excel だけの独自仕様ではないようです。

英語圏では、システムで時刻をAM/PMで表現したデータを正しく時系列順で表示できているのだろうか?ということが気になったので、とある米国企業が提供する運用監視ツールを見てみました。
一覧上の日時を表示する項目がデフォルトで英語圏の時刻の表現になっていましたが、データの並び順は正しい状態になっていました。「2023/9/14 11:59 PM」の1分後が「2023/9/15 12:00 AM」、「2023/9/15 12:59 AM」の1分後が「2023/9/15 1:00 AM」です。違和感ありまくりです。

参考