molto semplice utilizzando il formato stringa
su .ToSTring("") :
se si utilizza "hh" - >> L'ora, utilizzando un orologio a 12 ore f ROM 01 a 12.
se si utilizza "HH" - >> l'ora, utilizzando il formato 24 ore dalle 00 alle 23.
se si aggiunge "tt" - >> L'Am/Pm designatore.
exemple conversione 23:12-11:12:
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();
aspetta un attimo che non è tutto ciò che serve per la cura di un'altra cosa è la cultura del sistema, perché lo stesso codice eseguito su finestre con altre langage especialy con langage cultura difrent genereranno risultato difrent con lo stesso codice
esempio di finestre fissati alla cultura araba langage mostrerà così:
01.235.
// 23:12 su
significa Sera (prima leter di مساء).
in un'altra lingua di sistema dipende da ciò che è impostato sull'opzione di Windows regionale e lingua, mostrerà // 23:12 du.
è possibile passare da un formato all'altro sul pannello di controllo di Windows in Windows regionale e lingua -> formato corrente (combobox) e cambiare ... applicarlo a una ricostruzione (esecuzione) della tua app e guardare di cosa iam parla.
così chi posso forzare la visualizzazione di parole AM e Pm in inglese se la cultura del> sistema attuale non è impostata su inglese?
facile solo con l'aggiunta di due linee: ->
il primo passo aggiungere using System.Globalization;
sulla parte superiore del vostro codice
e modifing il codice precedente per essere come questo:
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 => utilizzando il formato inglese predefinito.
un'altra domanda voglio che il pm sia in arabo o in una lingua specifica, anche se uso windows impostato sul formato regionale in inglese (o in altre lingue)?
Soution per l'arabo Esempio:
DateTime d = new DateTime(1, 1, 1, 23, 12, 0);
var res = d.ToString("HH:mm tt", CultureInfo.CreateSpecificCulture("ar-AE"));
questo mostrerà // 23:12 م
evento se il mio sistema è impostato su un formato di regione inglese. è possibile modificare "ar-AE" se si desidera un altro formato di lingua. c'è una lista di ogni lingua e il suo formato.
esempi:
ar ar-SA Arabic
ar-BH ar-BH Arabic (Bahrain)
ar-DZ ar-DZ Arabic (Algeria)
ar-EG ar-EG Arabic (Egypt)
big list...
mi fanno sapere se avete un'altra domanda.
Ci sono molti modi migliori per formattare un 'DateTime' di questo. Vedi http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx – ChrisF