Supposons que j'ai la valeur 22/06/2009 10:00:00. Comment puis-je obtenir seulement 10h00 à partir de cette date.
Supposons que j'ai la valeur 22/06/2009 10:00:00. Comment puis-je obtenir seulement 10h00 à partir de cette date.
Réponses:
Vous avez de nombreuses options pour cela:
DateTime dt = DateTime.Parse("6/22/2009 07:00:00 AM");
dt.ToString("HH:mm"); // 07:00 // 24 hour clock // hour is always 2 digits
dt.ToString("hh:mm tt"); // 07:00 AM // 12 hour clock // hour is always 2 digits
dt.ToString("H:mm"); // 7:00 // 24 hour clock
dt.ToString("h:mm tt"); // 7:00 AM // 12 hour clock
Lien utile: Modèles DateTime.ToString ()
ss
correspond aux secondes avec un zéro s
non
À partir de a DateTime
, vous pouvez utiliser .TimeOfDay
- mais cela vous donne une TimeSpan
représentation de l'heure dans la journée (10 heures).
Il n'y a que le type DateTime en C # et il se compose à la fois de la partie date et heure. Si vous ne vous souciez pas de la partie Date de DateTime, définissez-la sur la valeur par défaut comme suit:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
De cette façon, vous pouvez être cohérent dans toutes les versions de .NET, même si Microsoft décide de changer la date de base en autre chose que 1/1/0001.
Vous souhaiterez peut-être examiner la méthode DateTime.ToShortTimeString () .
En outre, il existe de nombreuses autres méthodes et propriétés sur l' objet DateTime qui peuvent vous aider à formater la date ou l'heure de la manière que vous souhaitez. Jetez un œil à la documentation.
Essaye ça:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Il existe différentes manières de procéder. Vous pouvez utiliser DateTime.Now.ToLongTimeString()
qui renvoie uniquement l'heure au format chaîne.
DateTime.ToLongTimeString()
plutôt que DateTime.Now.ToLongTimeString()
. Compte tenu de l'âge de ce fil, mieux vaut ne pas le ressusciter à moins que la réponse n'apporte une amélioration significative par rapport aux réponses précédentes.
Vous pouvez simplement écrire
string time = dateTimeObect.ToString("HH:mm");
Vous pouvez utiliser ceci
lblTime.Text = DateTime.Now.TimeOfDay.ToString();
Il est en temps réel avec une valeur en millisecondes et se règle uniquement sur l'heure.
DateTime now = DateTime.Now;
now.ToLongDateString(); // Wednesday, January 2, 2019
now.ToLongTimeString(); // 2:33:59 PM
now.ToShortDateString(); // 1/2/2019
now.ToShortTimeString(); // 2:16 PM
now.ToString(); // 1/2/2019 2:33:59 PM
Vous pouvez utiliser ToString("T")
pendant longtemps ou ToString("t")
pour une courte période.
si vous utilisez gridview, vous ne pouvez afficher que l'heure avec l' DataFormatString="{0:t}"
exemple:
By bind the value:-
<asp:Label ID="lblreg" runat="server" Text='<%#Eval("Registration_Time ", "{0:t}") %>'></asp:Label>
By bound filed:-
<asp:BoundField DataField=" Registration_Time" HeaderText="Brithday" SortExpression=" Registration Time " DataFormatString="{0:t}"/>
Si vous cherchez à comparer les heures, et non les dates, vous pouvez simplement avoir une date de comparaison standard ou correspondre à la date que vous utilisez, comme dans ...
DateTime time = DateTime.Parse("6/22/2009 10:00AM");
DateTime compare = DateTime.Parse(time.ToShortDateString() + " 2:00PM");
bool greater = (time > compare);
Il existe peut-être de meilleures façons d'y parvenir, mais gardez les dates correspondantes.
Vous devez également tenir compte de DateTime Kind.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}