2010-01-03 7 views
1

Parfois, je reçois un datetime avec un temps parfois c'est juste la date.format dateheure - formater un datetime avec ou sans l'heure

Bien sûr, s'il est juste la date II à formater avec « dd.MM.yyyy » et si elle a un temps « dd.MM.yyyy HH: mm » ..

C'est dans un répéteur , donc je pensais que ce serait possible sans une simple déclaration si?

quel est le moyen le plus propre pour cela?

Merci et meilleures salutations.

Répondre

1

Peut-être essayer de vérifier si theDateTime.TimeOfDay.TotalSeconds est > 0

+1

ok donc vous écririez une fonction? –

+0

cela fonctionne, mais il faut convertir l'eval en datetime. Je vous remercie. –

0

Une valeur DateTime a toujours une composante de temps, même si le temps est 00:00:00. Si vous voulez un format spécial pour le cas où le temps est égal à zéro, vous devez faire une comparaison:

<%# TheDate.ToString(TheDate.TimeOfDay.TotalSeconds == 0 ? "dd'.'MM'.'yyyy" : "dd'.'MM'.'yyyy HH:mm:ss")%> 

(. Je suppose que vous voulez que les heures dans le format aussi, et pas seulement les minutes et les secondes)

0

Un datetime toujours contient un composant de temps, donc je suppose que vous souhaitez afficher uniquement la date si l'heure est "00:00" (12:00 AM). Pour autant que je sache, vous ne pouvez pas le faire uniquement avec des chaînes de format, vous devrez donc utiliser une fonction (simple). Vous pouvez toutefois utiliser l'opérateur ternary dans ASP.NET (non testé). En C#:

<%# checkIfTimeIsEmpty ? Eval(Container.DataItem, "myDate", "someformat") : Eval(Container.DataItem, "myDate", "someOtherFormat") %> 

ou VB.NET:

<%# If(checkIfTimeIsEmpty, Eval(Container.DataItem, "myDate", "someformat"), Eval(Container.DataItem, "myDate", "someOtherFormat") %> 
Questions connexes