手もあるかも知れない。

sodiumイオンにっき(2005-09-10)
24時制を表す接尾語があってもよいのではないか?
2:00 amなら午前2時*1、2:00 pmなら午後2時だけど24時制で2:00だということを示すにはどうすればよいのでしょうか?
そりゃ実用上は2:00 amで十分だけどさ。14:00って書いたら24時制に決まってるわけだし。

ちなみに米語では、発音の仕方も実は違う。14:00は Fourteen O'clock ではなくて Fourteen Hundred Hoursだ。これを応用して、24時間制の時には:(colon)を省くという手もある。

あるいは、(AM|PM)の欠如即24時間制という方法もある。

もっとも、これが話題にならないのは、時間を変換、例えばカレンダー表記を秒に直すような際に、02:00に関してはAMがあってもなくても同じという事情もあるかも知れない。

ところで、こうした年月日時分秒表記をEpochからの秒数に直すには、PerlではLWPに付属しているHTTP::Dateの、str2time()を使うといい。HTTPで使われている時間表記だけではなく、これだけのフォーマットに対応している。

 "Wed, 09 Feb 1994 22:23:32 GMT"       -- HTTP format
 "Thu Feb  3 17:03:55 GMT 1994"        -- ctime(3) format
 "Thu Feb  3 00:00:00 1994",           -- ANSI C asctime() format
 "Tuesday, 08-Feb-94 14:15:29 GMT"     -- old rfc850 HTTP format
 "Tuesday, 08-Feb-1994 14:15:29 GMT"   -- broken rfc850 HTTP format

 "03/Feb/1994:17:03:55 -0700"   -- common logfile format
 "09 Feb 1994 22:23:32 GMT"     -- HTTP format (no weekday)
 "08-Feb-94 14:15:29 GMT"       -- rfc850 format (no weekday)
 "08-Feb-1994 14:15:29 GMT"     -- broken rfc850 format (no weekday)

 "1994-02-03 14:15:29 -0100"    -- ISO 8601 format
 "1994-02-03 14:15:29"          -- zone is optional
 "1994-02-03"                   -- only date
 "1994-02-03T14:15:29"          -- Use T as separator
 "19940203T141529Z"             -- ISO 8601 compact format
 "19940203"                     -- only date

 "08-Feb-94"         -- old rfc850 HTTP format    (no weekday, no time)
 "08-Feb-1994"       -- broken rfc850 HTTP format (no weekday, no time)
 "09 Feb 1994"       -- proposed new HTTP format  (no weekday, no time)
 "03/Feb/1994"       -- common logfile format     (no time, no offset)

 "Feb  3  1994"      -- Unix 'ls -l' format
 "Feb  3 17:03"      -- Unix 'ls -l' format

 "11-15-96  03:52PM" -- Windows 'dir' format
 

この辺は再発明されがちな車輪なので、この場で注意を喚起しておくことにしよう。

Dan the Man with Too Many Ways to Tell the Time