【C#】 DateTime AM/PM表記の備考
Datetimeの記事は何度目になるんだろう(´ . .̫ . `)
DatetimeのAM PM表記
C#バージョンの問題かもしれませんが、AMPM表記が可笑しいことに気づきました。
AM PM 表記のやりかた
とりあえず24時間表示から12時間表示に変更する方法
DateTime TwentyFour = Datetime.Now //現在の時刻 string TimesString = TwentyFour.ToString(); //string型へ変換(24時間表示) string AmPmString = TwentyFour.ToString("hh:mm tt")://12時間表示のstring型へ変換
DateTimeをTostringでstringに変更する際に末尾に【tt】をつけるだけで変更できます。
AM/PM表記の問題
0時~1時、12時~13時のときが変な気がする
ログを見てみるとこうなります。
0時 => 12:00AM 12時 => 12:00PM
感覚的にはこうなってほしい。
0時 => 0:00AM 12時 => 0:00PM
これは何故なんだ。
正しい表記は12スタートなのか、アメリカ式の書き方なのか、DateTimeのバグなのか、謎です。
とりあえずif文で雑な対処でどうにかなりますが、モヤッとします
追記
ちょっと調べたところC#の表記方法が正しかったようです(´ . .̫ . `)
正しい12時間制表記はこのようになります。
00:00 =>12:00 AM 01:00 =>01:00 AM 02:00 =>02:00 AM 03:00 =>03:00 AM ... 10:00 =>10:00 AM 11:00 =>11:00 AM 12:00 =>12:00 PM 13:00 =>01:00 PM 14:00 =>02:00 PM 15:00 =>03:00 PM ... 21:00 =>09:00 PM 22:00 =>10:00 PM 23:00 =>11:00 PM 00:00 =>12:00 AM 01:00 =>01:00 AM
つまり1日は1時基準ということみたいです
いろいろ調べてみると面白いです。
そもそも英語圏では24時間表記が主流でAM/PMなんて使わないみたいですね