web-dev-qa-db-fra.com

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

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?

21
nmathur

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.

26
Marco

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);
18
bobbymcr

Convertir une chaîne en DateTime, vous pouvez essayer

    DateTime timeValue = Convert.ToDateTime("01:00 PM");
    Console.WriteLine(timeValue.ToString("HH:mm"));
8
Pratyush
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");
6
Haris Hasan

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

5
Shivkant

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

3
Praveen Gopal

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 .

0
npinti

Voici un exemple de code:

DateTime time_AMPM = DateTime.Now; string time_24hr = time_AMPM.TimeOfDay.ToString().Substring(0, 8);

0
Praveen Manupati