29 votes

Convertir l'heure AM/PM au format 24 heures ?

Je dois convertir l'heure au format 12 heures (am/pm) en heure au format 24 heures, par exemple de 01:00 PM à 13:00 en utilisant C#. Comment puis-je le convertir ?

0 votes

Quel est le format des données sources ?

0 votes

Quel est le type de format ? Voulez-vous utiliser une chaîne de caractères ou une date/heure ?

0 votes

Le format @phoog est h:mm tt

40voto

Marco Points 29879

Si vous avez besoin de convertir une chaîne de caractères en date et heure, vous pouvez essayer les méthodes suivantes

DateTime dt = DateTime.Parse("01:00 PM"); // No error checking

ou (avec vérification des erreurs)

DateTime dt;
bool res = DateTime.TryParse("01:00 PM", out dt);

Variable dt contient votre date, donc vous pouvez l'écrire

dt.ToString("HH:mm");

La dernière fonctionne pour chaque variable DateTime que vous avez, donc si vous avez toujours une DateTime, vous pouvez l'écrire de cette façon.

0 votes

Pour la dernière : Aucune surcharge de la méthode ToString ne prend un argument

19voto

bobbymcr Points 14916

Vous devez 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);

15voto

Pratyush Points 390

Pour convertir une chaîne de caractères en date et heure, vous pouvez essayer les méthodes suivantes

    DateTime timeValue = Convert.ToDateTime("01:00 PM");
    Console.WriteLine(timeValue.ToString("HH:mm"));

0 votes

Cette réponse permet également de convertir le format Nullable<DateTime> sympa .

6voto

Haris Hasan Points 17497
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");

1 votes

Pour AM, devrait être (hour % 12)

6voto

Shivkant Points 1292

Passez par le code suivant pour convertir le DateTime de 12 heures en 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"));

Si vous voulez que l'heure soit 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X