Gridviewを使用してSQLサーバーデータベースから日付値を取得し、日付が変換されます
12/12/2009 to 12/12/2009 12:00:00 AM
どうすればそれを防ぐことができますか?
ありがとう!
ToString()
メソッドをマスクとともに使用できます。
ToString("MM/dd/yyyy");
更新:グリッドビューテンプレートでこれを行う方が簡単だと気づいた
<asp:BoundField DataField="MyDate" DataFormatString="{0:MM/dd/yyyy}" />
このようにバインドされた列に日付形式を設定できます
<itemtemplate>
<asp id="Label1" runat="server" Label.Text='<%# Bind("YourDateField", "{0:M-dd-yyyy}") %>'>;
</asp>
</itemtemplate>
dataformatstring値を「{0:d}」に設定します
例:
<asp:BoundField HeaderText="Date" DataField="Date_Field" ReadOnly="True" DataFormatString="{0:d}">
</asp:BoundField>
以内に
asp:Label runat = "server" Text = '<%#Eval( "DateAndTime")%>'
追加してみてください"{0:M-dd-yyyy}"
asp:Label runat = "server" Text = '<%#Eval( "DateAndTime" 、 "{0:M-dd-yyyy}")%>'
RowDataBoundで既に日付を操作している場合は、DateTimeオブジェクトで.ToShortDateString()
を使用することもできます
DataAnnotations属性とDynamicFieldコントロールを使用できます。そのフィールドをフォーマットするたびに同じフォーマットを行う必要はありません。これを行う方法を示す例がここにあります: http://www.asp.net/entity-framework/tutorials/the-entity-framework-and-aspnet-%E2%80%93-getting- started-part-8
データベースからフィールドを選択すると、次のように選択で文字列に変換できます。
convert(varchar, myDate, 101)
以下のコードを試してください:
<asp:BoundField DataField="my_date" HeaderText="Date"
ReadOnly="True" SortExpression="my_date"
DataFormatString="{0:d}" />
上記のコードでは、my_date
は、sqlserverテーブルの日付列です。 DataFormatString="{0:d}"
は、特定の問題を解決するためのこのコードの主要部分です。