文字列形式を使用することで非常に簡単
オン .ToSTring("") :
「hh」を使用する場合->> 01から12までの12時間時計を使用した時間。
「HH」を使用する場合->>時間。00から23までの24時間クロックを使用します。
「tt」を追加した場合->> Am / Pm指定子。
23:12から11:12 Pmに変換する例:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("hh:mm tt"); // this show 11:12 Pm
var res2 = d.ToString("HH:mm"); // this show 23:12
Console.WriteLine(res);
Console.WriteLine(res2);
Console.Read();
少し待って、他のことを気にする必要があるのはシステムカルチャーだけではありません。異なるコード、特に異なるカルチャーランゲージを使用して同じコードがウィンドウで実行されると、同じコードで異なる結果が生成されます。
アラビア語のランゲージカルチャーに設定されたウィンドウの例は、次のように表示されます。
// 23:12م
مはEvening(مساءの最初のレター)を意味します。
別のシステムカルチャでは、Windowsの地域と言語のオプションで何が設定されているかによって異なり、// 23:12 duと表示されます。
Windowsの地域と言語->現在の形式(コンボボックス)でWindowsコントロールパネルの異なる形式を変更して変更できます...適用してアプリを再構築(実行)し、何が話しているのかを確認します。
>現在のシステムのカルチャが英語に設定されていない場合、英語のイベントでAmとPmの単語を強制的に表示できますか?
2行追加するだけで簡単:->
最初のステップ追加 using System.Globalization;
は、コードの上にします
前のコードを次のように変更します。
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.InvariantCulture); // this show 11:12 Pm
InvariantCulture =>デフォルトの英語形式を使用。
英語(または他の言語)の地域形式に設定されたウィンドウを使用している場合でも、午後をアラビア語または特定の言語にしたい別の質問?
アラビア語の例のSoution:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.CreateSpecificCulture("ar-AE"));
これは// 23:12مを表示します
システムが英語の地域形式に設定されている場合のイベント。別の言語形式にしたい場合は、「ar-AE」を変更できます。各言語とその形式のリストがあります。
見本:
ar ar-SA Arabic
ar-BH ar-BH Arabic (Bahrain)
ar-DZ ar-DZ Arabic (Algeria)
ar-EG ar-EG Arabic (Egypt)
big list...
他に質問がある場合はお知らせください。
DateTime
。msdn.microsoft.com/en-us/library/8kb3ddd4.aspxを