@MetroSmurf - l'OP n'est bien sûr pas clair ce qu'il veut faire. Un de mes animaux déteste est d'aller trop tôt. J'ai eu un collègue qui a tout converti en corde - même en double, etc. C'est un accident qui attend. Je dirais de ne pas convertir les objets en chaînes tant que vous ne souhaitez pas afficher l'objet à un humain. Jusque-là, restez avec les objets.
paul
1
Pour référence rapide, sscorrespond aux secondes avec un zéro snon
significatif
meilleure réponse jusqu'à présent
Tk1993
76
À partir de a DateTime, vous pouvez utiliser .TimeOfDay- mais cela vous donne une TimeSpanreprésentation de l'heure dans la journée (10 heures).
ou cas particuliers avec formatage sur ToString ("codes de format")
kenny
61
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:
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.
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.
+1 C'est la solution la plus propre, si vous exécutez dans un environnement international avec une exigence de localisation de la sortie de l'heure, car elle renvoie l'heure dans le format sur lequel le système actuel a été défini.
Vous vouliez probablement 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.
TimeOfDay est un bon moyen, mais il apporte également une partie en millisecondes dont vous avez besoin pour formater votre temps avec le type standard.
sajadre le
5
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
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:BoundFieldDataField=" 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 ...
Inutile de répondre à cette question, elle a été posée il y a 9 ans. Il existe également de nombreuses bonnes réponses à cette question.
benshabatnoam
Vous ne renvoyez pas l'heure. Vous devriez revoir votre réponse
Yepeekai
@Yepeekai Il n'y a pas de classe Time dans .NET. Ainsi, une instance DateTime sans partie Date est l'une des options que vous pouvez faire. Vous pouvez également renvoyer une chaîne, mais vous pouvez l'utiliser dans les opérations DateTime. Je suppose que vous pourriez aussi envisager un TimeSpan.
user3720899
imo le "nouveau DateTime (d.TimeOfDay.Ticks)" est la réponse la plus claire à ce jour
Réponses:
Vous avez de nombreuses options pour cela:
Lien utile: Modèles DateTime.ToString ()
la source
ss
correspond aux secondes avec un zéros
nonÀ partir de a
DateTime
, vous pouvez utiliser.TimeOfDay
- mais cela vous donne uneTimeSpan
représentation de l'heure dans la journée (10 heures).la source
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:
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.
la source
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.
la source
Essaye ça:
la source
Il existe différentes manières de procéder. Vous pouvez utiliser
DateTime.Now.ToLongTimeString()
qui renvoie uniquement l'heure au format chaîne.la source
DateTime.ToLongTimeString()
plutôt queDateTime.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
la source
Vous pouvez utiliser ceci
Il est en temps réel avec une valeur en millisecondes et se règle uniquement sur l'heure.
la source
la source
Cela fonctionne pour moi. Je l'ai découvert quand je devais travailler avec DateTime.Date pour obtenir uniquement la partie date.
la source
Vous pouvez utiliser
ToString("T")
pendant longtemps ouToString("t")
pour une courte période.la source
si vous utilisez gridview, vous ne pouvez afficher que l'heure avec l'
DataFormatString="{0:t}"
exemple:la source
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 ...
Il existe peut-être de meilleures façons d'y parvenir, mais gardez les dates correspondantes.
la source
Vous devez également tenir compte de DateTime Kind.
la source