J'essaie d'obtenir uniquement le temps d'un objet DateTime
.
Disons que j'ai cet objet:
Nullable<DateTime> data = new DateTime(2007,6,15,5 ,23,45);
J'ai essayé d'utiliser:
data.Value.ToShortTimeString()
Et je reçois:
5:23 AM
J'aimerais pouvoir afficher uniquement 5:23
Comment puis je faire ça?
Vous pouvez utiliser la méthode ToString
avec la chaîne de formatage appropriée :
var time = date.ToString("H:mm");
Vous pouvez utiliser "H" spécificateur de format personnalisé .
Le spécificateur de format personnalisé "H" représente l'heure sous forme d'un nombre compris entre 0 et 23; c'est-à-dire que l'heure est représentée par une horloge de 24 heures basée sur zéro qui compte les heures écoulées depuis minuit. Une heure à un chiffre est formatée sans un zéro non significatif.
Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
Console.WriteLine(data.Value.ToString("H:mm"));
La sortie sera;
5:23
Voici une DEMO
.
Pour plus d'informations, consultez Custom Date and Time Format Strings
Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
var timeofDay = data.Value.TimeOfDay; // 05:23:45
Si vous devez obtenir un type TimeSpan
, utilisez la propriété de la classe DateTime appelée TimeOfDay
. Il ne retourne que la partie "temps".
Si vous devez obtenir une chaîne dans ce format, utiliser TimeOfDay est une surcharge et utilisez simplement ToString("hh:mm")
pour formater votre sortie. Si vous ne voulez pas de résultats tels que 05:40
, utilisez ToString("H:mm")
.
var time = date.ToString("H:mm");
H
représente ici le temps de 24 heures. c'est-à-dire 0-23
Voir plus de format Chaînes de format de date et heure personnalisées
étrange, ça marche très bien pour moi, maby c'est un décor en visual studio?
Tu peux essayer ça
Nullable<DateTime> data = new DateTime(2007, 6, 15, 5, 23, 45);
Debug.Write(data.Value.Hour + ":" + data.Value.Minute);