Supposons que j'ai la valeur 6/22/2009 10:00:00 AM. Comment puis-je obtenir seulement 10h00 à partir de cette heure.
Vous avez beaucoup d'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: Motifs DateTime.ToString ()
A partir d'une DateTime
, vous pouvez utiliser .TimeOfDay
- mais cela vous donne une TimeSpan
représentant l'heure du jour (10 heures).
Il n'y a qu'un type DateTime en C # et il comprend les parties 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 ceci:
DateTime myTime = default(DateTime).Add(myDateTime.TimeOfDay)
De cette façon, vous pouvez être cohérent avec toutes les versions de .NET, même si Microsoft décide de changer la date de base en une date autre que 1/1/0001.
Vous voudrez 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 à définir la date ou l'heure de la manière qui vous convient. Jetez un coup d'œil à la documentation.
Essaye ça:
TimeSpan TodayTime = DateTime.Now.TimeOfDay;
Vous pouvez utiliser le code suivant:
DateTime dt = new DateTime(2009, 6, 22, 10, 0, 0); //Date 6/22/2009 10:00:00 AM
string time = dt.ToString("hh:mm tt"); //Output: 10:00 AM
time = dt.ToString("HH:mm tt"); //Output: 10:00 AM
dt = new DateTime(2009, 6, 22, 22, 0, 0); //Date 6/22/2009 10:00:00 PM
time = dt.ToString("hh:mm tt"); //Output: 10:00 PM
time = dt.ToString("HH:mm tt"); //Output: 22:00 PM
Il y a différentes façons de le faire. Vous pouvez utiliser DateTime.Now.ToLongTimeString()
qui Ne renvoie que l'heure au format chaîne.
Vous pouvez simplement écrire
string time = dateTimeObect.ToString("HH:mm");
Vous pouvez utiliser ToString("T")
pour une longue durée ou ToString("t")
pour une courte durée.
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
Cela fonctionne pour moi. Je l'ai découvert lorsque j'ai dû travailler avec DateTime.Date pour obtenir uniquement la partie date.
var wholeDate = DateTime.Parse("6/22/2009 10:00:00 AM");
var time = wholeDate - wholeDate.Date;
Vous pouvez utiliser ceci
lblTime.Text = DateTime.Now.TimeOfDay.ToString();
Il est en temps réel avec une valeur en millisecondes et il définit l'heure uniquement.
si vous utilisez gridview, vous ne pouvez afficher que l'heure avec 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 une correspondance avec 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 y a peut-être de meilleures façons d'y parvenir, mais conserve les dates correspondantes.
Dans mon cas ça marche bien
MyDateTime.ToLongTimeString()
Vous devez également tenir compte du type DateTime.
public static DateTime GetTime(this DateTime d)
{
return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}