日時をデータベースに更新しました。2012 年 5 月 2 日です。しかし、そのデータベースからこの値をテキストボックスに表示したい場合、次のように表示されます: 05/02/2012.
この問題を解決するのを手伝ってください。フォーマットが更新されたように、その値をテキストボックスに表示したい: 5/2/2010
前もって感謝します
日時をデータベースに更新しました。2012 年 5 月 2 日です。しかし、そのデータベースからこの値をテキストボックスに表示したい場合、次のように表示されます: 05/02/2012.
この問題を解決するのを手伝ってください。フォーマットが更新されたように、その値をテキストボックスに表示したい: 5/2/2010
前もって感謝します
データをDateTime
オブジェクトとして持っている場合はToString(string)
、フォーマット文字列「d/M/yyyy」またはここで説明されている他のフォーマットでオーバーロードを使用して出力をフォーマットできます: http://msdn.microsoft.com/en-us /library/8kb3ddd4.aspx
これを試して :
Textbox1.Text=datevalue.ToString("MM/dd/yyyy");
SELECT CAST(DATEPART(MM,GETDATE()) AS VARCHAR(2))+'/'
+CAST(DATEPART(DD,GETDATE()) AS VARCHAR(2))+'/'
+CAST(DATEPART(YYYY,GETDATE()) AS VARCHAR(4))
これを試しToString("d/M/yyyy")
て、目的の形式を指定してください。
コードを見せていただければ、もっとお手伝いできます。
For doing that the best way is saving datetime into the database as a string. then after retrieving the string I can convert that to datetime. and it will show the correct format.
ToString("MM/dd/yyyy")
値を割り当てながら使用できます。
テキストボックスがTextbox1
あり、日付値がDateTime
オブジェクトdatevalueに格納されている場合は、次のようにする必要があります。
Textbox1.Text=datevalue.ToString("MM/dd/yyyy");
このデータを日時型として SQL Server に保存すると、元の形式が失われます。ただし、先頭に 0 を付けずにデータを表示したい場合は、テキスト ボックスに対してこれを行うことができます。
mytextbox.Text = dt.Month.ToString().TrimStart('0') + "/" + dt.Day.ToString().TrimStart('0') + "/" + dt.Year.ToString()
結果の柔軟性が失われるため、複雑なクエリを使用してデータをいじったり、アプリケーションに到達する前にデータを事前にフォーマットしたりすることは、通常はお勧めできません。
SQL からのデータは、一般的な DateTime スタンプとして適切にフォーマットされています。@Chris-Sinclair が例へのリンクで示唆しているように、アプリケーションが表示目的でそれをマッサージできるようにします。
WPF を使用する場合の最善の方法は、UI 要素が適切と思われるテキストを書式設定できるようにすることです。これにより、クラス インスタンスのコンテンツは変更されません。これはまだ DateTime オブジェクトであるため、完全な値を失うことなく、DateTime の「計算」やその他の操作を行うことができます。
以下は、WPF UI 要素がフォーマットを決定するエレガントコードの例です。
<TextBlock Text="{Binding Date, StringFormat={}{0:MM/dd/yyyy hh:mm tt}}" />
あなたの特定の目的のために、正しい行は次のようになります
<TextBlock Text="{Binding Date, StringFormat={}{0:M/d/yyyy hh:mm tt}}" />