Molto semplice usando il formato stringa
sopra .ToSTring("") :
se usi "hh" - >> L'ora, usando un orologio a 12 ore da 01 a 12.
se usi "HH" - >> L'ora, usando un orologio di 24 ore dalle 00 alle 23.
se si aggiunge "tt" - >> Il designatore Am / Pm.
esempio di conversione dalle 23:12 alle 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();
aspetta un secondo che non è tutto ciò di cui hai bisogno di preoccuparti di qualcos'altro è la cultura del sistema perché lo stesso codice eseguito su Windows con altre lingue specialmente con le lingue di cultura diversa genererà un risultato diverso con lo stesso codice
esempio di windows impostato sulla cultura del langage arabo mostrerà così:
// 23:12 م
م significa Sera (primo leter di مساء).
in un altro sistema la cultura dipende da ciò che è impostato sull'opzione windows e lingua di Windows, mostrerà // 23:12 du.
puoi cambiare tra diversi formati sul pannello di controllo di Windows in Windows regional e lingua -> formato corrente (casella combinata) e cambiare ... applicalo fai una ricostruzione (esegui) della tua app e guarda di cosa parla iam.
quindi chi posso forzare a mostrare le parole Am e Pm in inglese se la cultura del sistema attuale non è impostata in inglese?
facile semplicemente aggiungendo due righe: ->
il primo passo si aggiunge using System.Globalization;
al codice
e modificando il codice precedente in questo modo:
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 che desidero avere il pm in arabo o in una lingua specifica, anche se utilizzo windows impostato sul formato regionale inglese (o altra lingua)?
Soution per esempio arabo:
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. puoi cambiare "ar-AE" se vuoi un altro formato di lingua. c'è un elenco 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...
fammi sapere se hai un'altra domanda.
DateTime
di questo. Vedere msdn.microsoft.com/en-us/library/8kb3ddd4.aspx