Sehr einfach mit dem String-Format
auf .ToSTring("") :
Wenn Sie "hh" - >> Die Stunde verwenden, verwenden Sie eine 12-Stunden-Uhr von 01 bis 12.
Wenn Sie "HH" verwenden - >> Die Stunde mit einer 24-Stunden-Uhr von 00 bis 23.
Wenn Sie "tt" hinzufügen - >> Der Am / Pm-Bezeichner.
Beispiel Konvertierung von 23:12 auf 23:12 Uhr:
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();
Warten Sie eine Sekunde, das ist nicht alles, was Sie brauchen, um sich um etwas anderes zu kümmern, ist die Systemkultur, da der gleiche Code, der unter Windows mit einer anderen Sprache ausgeführt wird, insbesondere mit einer anderen Kultursprache, ein anderes Ergebnis mit demselben Code erzeugt
Ein Beispiel für Fenster, die auf arabische Sprachkultur eingestellt sind, wird folgendermaßen angezeigt:
// 23:12 م
م bedeutet Abend (erster Brief von مساء).
In einer anderen Systemkultur hängt es davon ab, was in der Windows-Regional- und Sprachoption festgelegt ist. Es wird // 23:12 du angezeigt.
Sie können in der Windows-Systemsteuerung unter Windows Regional und Sprache zwischen verschiedenen Formaten wechseln -> aktuelles Format (Combobox) und ändern ... anwenden. Führen Sie eine Neuerstellung (Ausführung) Ihrer App durch und beobachten Sie, worüber ich spreche.
Wen kann ich also zwingen, Am- und Pm-Wörter auf Englisch anzuzeigen, wenn die Kultur des aktuellen Systems nicht auf Englisch eingestellt ist?
einfach durch Hinzufügen von zwei Zeilen: ->
Im ersten Schritt fügen Sie using System.Globalization;
Ihren Code hinzu
und Ändern des vorherigen Codes wie folgt:
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 => im englischen Standardformat.
Eine andere Frage: Ich möchte, dass die Uhr in Arabisch oder einer bestimmten Sprache ist, auch wenn ich Fenster verwende, die auf das regionale Format Englisch (oder eine andere Sprache) eingestellt sind.
Soution für Arabisch Beispiel:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.CreateSpecificCulture("ar-AE"));
Dies zeigt // 23:12 م
Ereignis, wenn mein System auf ein englisches Regionsformat eingestellt ist. Sie können "ar-AE" ändern, wenn Sie ein anderes Sprachformat verwenden möchten. Es gibt eine Liste jeder Sprache und ihres Formats.
Beispiele:
ar ar-SA Arabic
ar-BH ar-BH Arabic (Bahrain)
ar-DZ ar-DZ Arabic (Algeria)
ar-EG ar-EG Arabic (Egypt)
big list...
Lassen Sie mich wissen, wenn Sie eine andere Frage haben.
DateTime
. Siehe msdn.microsoft.com/en-us/library/8kb3ddd4.aspx