web-dev-qa-db-fra.com

Comment obtenir uniquement l'heure de date-heure C #

Supposons que j'ai la valeur 6/22/2009 10:00:00 AM. Comment puis-je obtenir seulement 10h00 à partir de cette heure.

112
apeksha

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 ()

160

A partir d'une DateTime, vous pouvez utiliser .TimeOfDay - mais cela vous donne une TimeSpan représentant l'heure du jour (10 heures).

61
Marc Gravell

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. 

46
panpawel

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.

21
heavyd

Essaye ça:

TimeSpan TodayTime = DateTime.Now.TimeOfDay;
10

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
7
Chirag

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.

6
tarakaram gopal

Vous pouvez simplement écrire

string time = dateTimeObect.ToString("HH:mm");
4
Kishan Gupta

Vous pouvez utiliser ToString("T") pour une longue durée ou ToString("t") pour une courte durée.

3
matsmats
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
3
Görkem Hacıoğlu

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;
3
ProfK

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.

3
chrysanly

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}"/>
2
Bipul Roy

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.

1
Hugoware

Dans mon cas ça marche bien

MyDateTime.ToLongTimeString()
0
Leonardo Mora

Vous devez également tenir compte du type DateTime.

public static DateTime GetTime(this DateTime d)
{
    return new DateTime(d.TimeOfDay.Ticks, d.Kind);
}
0
user3720899