Je dois convertir le format 12 heures (am/pm) en format 24 heures, par exemple. 01:00 PM à 13:00 en utilisant C #. Comment puis-je le convertir?
Si vous avez besoin de convertir une chaîne en DateTime, vous pouvez essayer
DateTime dt = DateTime.Parse("01:00 PM"); // No error checking
ou (avec vérification d'erreur)
DateTime dt;
bool res = DateTime.TryParse("01:00 PM", out dt);
La variable dt
contient votre date-heure, vous pouvez donc l'écrire
dt.ToString("HH:mm");
Le dernier fonctionne pour chaque variable DateTime que vous avez. Par conséquent, si vous avez toujours un DateTime, vous pouvez l'écrire de cette manière.
Vous voudrez vous familiariser avec Chaînes de format de date et d’heure personnalisées .
DateTime localTime = DateTime.Now;
// 24 hour format -- use 'H' or 'HH'
string timeString24Hour = localTime.ToString("HH:mm", CultureInfo.CurrentCulture);
Convertir une chaîne en DateTime, vous pouvez essayer
DateTime timeValue = Convert.ToDateTime("01:00 PM");
Console.WriteLine(timeValue.ToString("HH:mm"));
int hour = your hour value;
int min = your minute value;
String ampm = your am/pm value;
hour = ampm == "AM" ? hour : (hour % 12) + 12; //convert 12-hour time to 24-hour
var dateTime = new DateTime(0,0,0, hour, min, 0);
var timeString = dateTime.ToString("HH:mm");
Passez par le code suivant pour convertir le DateTime de 12 heures à 24 heures.
string currentDateString = DateTime.Now.ToString("dd-MMM-yyyy h:mm tt");
DateTime currentDate = Convert.ToDateTime(currentDateString);
Console.WriteLine("String Current Date: " + currentDateString);
Console.WriteLine("Converted Date: " + currentDate.ToString("dd-MMM-yyyy HH:mm"));
Quand vous le souhaitez, l'heure doit être affichée en 24 heures, utilisez le format "HH"
Vous pouvez vous référer au lien suivant pour plus de détails: Chaînes de format de date et d’heure personnalisées
Vous pouvez utiliser comme ceci:
string date = "";
date = DateTime.ParseExact("01:00 PM" , "h:mm tt",
CultureInfo.InvariantCulture).ToString("HH:mm");
h: 12 heures
mm: minutes
tt: PM/AM
HH: 24 heures
Vous pouvez utiliser la méthode ParseExact () pour obtenir un objet DateTime. Vous pouvez ensuite utiliser la méthode ToString () de cet objet DateTime pour convertir la chaîne en tout ce dont vous avez besoin, comme indiqué ici .
Voici un exemple de code:
DateTime time_AMPM = DateTime.Now;
string time_24hr = time_AMPM.TimeOfDay.ToString().Substring(0, 8);