web-dev-qa-db-fra.com

Format Date / Heure en XAML dans Silverlight

J'ai une application Silverlight 4. J'ai un objet C # DateTime que je lie à mon interface utilisateur. Je veux que ce DateTime soit dans le format de dd/mm/yyyy heure (fuseau horaire). Par exemple, aujourd'hui serait affiché comme

04/07/2011 at 01:13 p.m. (EST)

Y a-t-il un moyen de faire ceci XAML? Ou dois-je construire un convertisseur?

65
user687554
<TextBlock Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy a\\t h:mm tt}'}" />

te rendra

04/07/2011 à 1:28 PM (-04)

103
Vlad Bezden

Vous pouvez utiliser StringFormat dans Silverlight 4 pour fournir un formatage personnalisé de la valeur que vous liez.

Rendez-vous

Le formatage de la date offre une vaste gamme d’options.

Pour le DateTime du "17 avril 2004, 13:52:45"

Vous pouvez soit utiliser un ensemble de formats standard (formats standard)…

StringFormat=f : “Saturday, April 17, 2004 1:52 PM”
StringFormat=g : “4/17/2004 1:52 PM”
StringFormat=m : “April 17”
StringFormat=y : “April, 2004”
StringFormat=t : “1:52 PM”
StringFormat=u : “2004-04-17 13:52:45Z”
StringFormat=o : “2004-04-17T13:52:45.0000000”

… Ou vous pouvez créer votre propre format de date avec des lettres (formats personnalisés)

StringFormat=’MM/dd/yy’ : “04/17/04”
StringFormat=’MMMM dd, yyyy g’ : “April 17, 2004 A.D.”
StringFormat=’hh:mm:ss.fff tt’ : “01:52:45.000 PM”
59
BrokenGlass

vous pouvez aussi utiliser juste

StringFormat=d

dans la colonne de votre grille de données pour la date et l'heure

enfin ce sera

   <sdk:DataGridTextColumn  Binding="{Binding Path=DeliveryDate,StringFormat=d}" Header="Delivery date" Width="*" />

la sortie ressemblera

enter image description here

10
atik sarker

C #: essayez ceci

  • aaaa (aaaa) - années
  • MM - mois (comme '03'), MMMM - mois (comme 'March')
  • jj - jours (comme 09), jj/jjjd - jours (dimanche/dimanche)
  • hh - heure 12 (AM/PM), HH - heure 24
  • mm - minute
  • ss - seconde

Utilisez un délimiteur, comme ceci:

  1. MessageBox.Show (DateValue.ToString ("aaaa-MM-jj")); exemple de résultat: "2014-09-30"
  2. chaîne de format vide: MessageBox.Show (DateValue.ToString ()); Exemple de résultat: "30.09.2014 0:00:00"
6
Rellaxx

En SL5, j'ai trouvé que cela fonctionnait:

<TextBlock Name="textBlock" Text="{Binding JustificationDate, StringFormat=dd-MMMM-yy hh:mm}">
<TextBlock Name="textBlock" Text="{Binding JustificationDate, StringFormat='Justification Date: \{0:dd-MMMM-yy hh:mm\}'}">
6
Dave Mateer