web-dev-qa-db-ja.com

SilverlightのXAMLで日付/時刻をフォーマットする

Silverlight 4アプリケーションがあります。 UIにバインドしているC#DateTimeオブジェクトがあります。このDateTimeをdd/mm/yyyy time(TimeZone)の形式にする必要があります。たとえば、今日は次のように表示されます

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

これを行う方法はありますかXAML?または、コンバーターを構築する必要がありますか?

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

あなたを返します

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

103
Vlad Bezden

Silverlight 4で StringFormat を使用して、バインドする値のカスタム形式を提供できます。

日付

日付の書式設定には幅広いオプションがあります。

「2004年4月17日午後1時52分45秒」の日時

一連の標準形式(標準形式)を使用できます…

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”

…または、文字を使用して独自の日付形式を作成できます(カスタム形式)

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

また、ちょうどを使用することができます

StringFormat=d

日時を表示するためのデータグリッド列

最後になります

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

出力は次のようになります

enter image description here

10
atik sarker

C#:これを試してください

  • yyyy(yy/yyy)-年
  • MM-月(「03」など)、MMMM-月(「3月」など)
  • dd-日(09など)、ddd/dddd-日(日/日)
  • hh-時間12(AM/PM)、HH-時間24
  • mm-分
  • ss-秒

次のようなデリミターを使用します。

  1. MessageBox.Show(DateValue.ToString( "yyyy-MM-dd"));結果の例: "2014-09-30"
  2. 空のフォーマット文字列:MessageBox.Show(DateValue.ToString());結果の例: "30.09.2014 0:00:00"
6
Rellaxx

SL5で、これが機能することがわかりました。

<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