asp.net日期显示 问题
fffff 秒的小數精度為五位。其余數字被截斷。
ffffff 秒的小數精度為六位。其余數字被截斷。
fffffff 秒的小數精度為七位。其余數字被截斷。
t 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項的第一個字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項(如果存在)。
z 時區偏移量(“+”或“-”后面僅跟小時)。一位數的小時數沒有前導零。例如,太平洋標準時間是“-8”。
zz 時區偏移量(“+”或“-”后面僅跟小時)。一位數的小時數有前導零。例如,太平洋標準時間是“-08”。
zzz 完整時區偏移量(“+”或“-”后面跟有小時和分鐘)。一位數的小時數和分鐘數有前導零。例如,太平洋標準時間是“-08:00”。
: 在 TimeSeparator 中定義的默認時間分隔符。
/ 在 DateSeparator 中定義的默認日期分隔符。
% c 其中 c 是格式模式(如果單獨使用)。如果格式模式與原義字符或其他格式模式合并,則可以省略“%”字符。
\ c 其中 c 是任意字符。照原義顯示字符。若要顯示反斜杠字符,請使用“\\”。
只有上面第二個表中列出的格式模式才能用于創建自定義模式;在第一個表中列出的標準格式字符不能用于創建自定義模式。自定義模式的長度至少為兩個字符;例如,
DateTime.ToString( "d") 返回 DateTime 值;“d”是標準短日期模式。
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定義模式。
DateTime.ToString( "d ") 返回后面跟有一個空白字符的月中的某天;“d”是自定義模式。
比較方便的是,上面的參數可以隨意組合,并且不會出錯,多試試,肯定會找到你要的時間格式
如要得到2005年06月 這樣格式的時間
可以這樣寫:
| 以下是引用片段: date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo) |
如此類推.
下面列出一些Asp.net中具體的日期格式化用法:
============================================
1.綁定時格式化日期方法:
| 以下是引用片段: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN > |
2.數據控件如DataGrid/DataList等的件格式化日期方法:
| 以下是引用片段: e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString(); |
3.用String類轉換日期顯示格式:
| 以下是引用片段: String.Format( "yyyy-MM-dd ",yourDateTime); |
4.用Convert方法轉換日期顯示格式:
| 以下是引用片段: Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁體數據庫 |
5.直接用ToString方法轉換日期顯示格式:
| 以下是引用片段: DateTime.Now.ToString("yyyyMMddhhmmss"); DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") |
6.只顯示年月
| 以下是引用片段: DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}") |
7.顯示時間所有部分,包括:年月日時分秒
| 以下是引用片段: <asp:BoundColumn DataField="收款時間" HeaderText="收款時間" DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}"> </asp:BoundColumn> |
[ASP.NET] 如何在GridView中使用DataFromatString
在我們從業務邏輯層獲得數據實體時候,接下來的事情就是要綁定到控件中。數據實體中的一些字段可以直接綁定到界面中,但是有一些字段需要重新格式化格式。比如貨幣單位字段,需要顯示貨幣符號和每隔三位顯示分隔符;再比如日期字段,數據庫中存放的是日期和時間,但是在界面上需要按照XXXX年XX月XX日的格式顯示。這時候我們就用到了DataFormatString屬性。
| 以下是引用片段: <asp:GridView ID="grvResult" runat="server" AutoGenerateColumns="False" Width="100%"> ???? <Columns> ???????? <asp:BoundField HeaderText="預定日期" DataField="OperationDate" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False"> ???????? </asp:BoundField>?????? ???????? <asp:BoundField HeaderText="訂單總計" DataField="TotalRate" DataFormatString="{0:C}" HtmlEncode="False"> ???????? </asp:BoundField> ???? </Columns> </asp:GridView> |
例如上面的代碼展示了日期和貨幣兩種綁定方式。DataFormatString中的{0}是固定的格式,這和String.Fromat(“{0}”, someString)中的{0}是一個用法,表示綁定上下文的參數索引編號。然后,在后面加入格式化字符串,具體的使用方法可以參考MSDN。
這里需要注意以下幾點
1. 在GridView中的asp:BoundField使用DataFormatString必須設置屬性HtmlEncode="False",否則不起作用。
2. 如果需要使用日期類型的格式化字符串,必須數據實體中對應的字段也應該日起類型的。
3. 格式化字符串C代表貨幣單位,需要綁定的數據類型應該是數字類型的。如果是字符串類型的不起作用,需要手動添加格式化字符串為DataFormatString="¥{0:C}"。
fffff 秒的小數精度為五位。其余數字被截斷。
ffffff 秒的小數精度為六位。其余數字被截斷。
fffffff 秒的小數精度為七位。其余數字被截斷。
t 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項的第一個字符(如果存在)。
tt 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項(如果存在)。
z 時區偏移量(“+”或“-”后面僅跟小時)。一位數的小時數沒有前導零。例如,太平洋標準時間是“-8”。
zz 時區偏移量(“+”或“-”后面僅跟小時)。一位數的小時數有前導零。例如,太平洋標準時間是“-08”。
zzz 完整時區偏移量(“+”或“-”后面跟有小時和分鐘)。一位數的小時數和分鐘數有前導零。例如,太平洋標準時間是“-08:00”。
: 在 TimeSeparator 中定義的默認時間分隔符。
/ 在 DateSeparator 中定義的默認日期分隔符。
% c 其中 c 是格式模式(如果單獨使用)。如果格式模式與原義字符或其他格式模式合并,則可以省略“%”字符。
\ c 其中 c 是任意字符。照原義顯示字符。若要顯示反斜杠字符,請使用“\\”。
只有上面第二個表中列出的格式模式才能用于創建自定義模式;在第一個表中列出的標準格式字符不能用于創建自定義模式。自定義模式的長度至少為兩個字符;例如,
DateTime.ToString( "d") 返回 DateTime 值;“d”是標準短日期模式。
DateTime.ToString( "%d") 返回月中的某天;“%d”是自定義模式。
DateTime.ToString( "d ") 返回后面跟有一個空白字符的月中的某天;“d”是自定義模式。
比較方便的是,上面的參數可以隨意組合,并且不會出錯,多試試,肯定會找到你要的時間格式
如要得到2005年06月 這樣格式的時間
可以這樣寫:
| 以下是引用片段: date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo) |
如此類推.
下面列出一些Asp.net中具體的日期格式化用法:
============================================
1.綁定時格式化日期方法:
| 以下是引用片段: <ASP:BOUNDCOLUMN DATAFIELD= "JoinTime " DATAFORMATSTRING= "{0:yyyy-MM-dd} " > <ITEMSTYLE WIDTH= "18% " > </ITEMSTYLE > </ASP:BOUNDCOLUMN > |
2.數據控件如DataGrid/DataList等的件格式化日期方法:
| 以下是引用片段: e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString(); |
3.用String類轉換日期顯示格式:
| 以下是引用片段: String.Format( "yyyy-MM-dd ",yourDateTime); |
4.用Convert方法轉換日期顯示格式:
| 以下是引用片段: Convert.ToDateTime("2005-8-23").ToString ("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁體數據庫 |
5.直接用ToString方法轉換日期顯示格式:
| 以下是引用片段: DateTime.Now.ToString("yyyyMMddhhmmss"); DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss") |
6.只顯示年月
| 以下是引用片段: DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}") |
7.顯示時間所有部分,包括:年月日時分秒
| 以下是引用片段: <asp:BoundColumn DataField="收款時間" HeaderText="收款時間" DataFormatString="{0:yyyy-MM-dd HH24:mm:ss}"> </asp:BoundColumn> |
[ASP.NET] 如何在GridView中使用DataFromatString
在我們從業務邏輯層獲得數據實體時候,接下來的事情就是要綁定到控件中。數據實體中的一些字段可以直接綁定到界面中,但是有一些字段需要重新格式化格式。比如貨幣單位字段,需要顯示貨幣符號和每隔三位顯示分隔符;再比如日期字段,數據庫中存放的是日期和時間,但是在界面上需要按照XXXX年XX月XX日的格式顯示。這時候我們就用到了DataFormatString屬性。
| 以下是引用片段: <asp:GridView ID="grvResult" runat="server" AutoGenerateColumns="False" Width="100%"> ???? <Columns> ???????? <asp:BoundField HeaderText="預定日期" DataField="OperationDate" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False"> ???????? </asp:BoundField>?????? ???????? <asp:BoundField HeaderText="訂單總計" DataField="TotalRate" DataFormatString="{0:C}" HtmlEncode="False"> ???????? </asp:BoundField> ???? </Columns> </asp:GridView> |
例如上面的代碼展示了日期和貨幣兩種綁定方式。DataFormatString中的{0}是固定的格式,這和String.Fromat(“{0}”, someString)中的{0}是一個用法,表示綁定上下文的參數索引編號。然后,在后面加入格式化字符串,具體的使用方法可以參考MSDN。
這里需要注意以下幾點
1. 在GridView中的asp:BoundField使用DataFormatString必須設置屬性HtmlEncode="False",否則不起作用。
2. 如果需要使用日期類型的格式化字符串,必須數據實體中對應的字段也應該日起類型的。
3. 格式化字符串C代表貨幣單位,需要綁定的數據類型應該是數字類型的。如果是字符串類型的不起作用,需要手動添加格式化字符串為DataFormatString="¥{0:C}"。
一、數字的格式化:
【<%#Container.DataItem("price")%>的結果是500.0000,怎樣格式化為500.00?】
<%#Container.DataItem("price","{0:¥#,##0.00}")%>
int i=123456;
string s=i.ToString("###,###.00");
二、日期格式化:
【aspx頁面內:<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date")%>
顯示為: 2004-8-11 19:44:28
我只想要:2004-8-11 】
<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-M-d}")%>
【格式化日期】
取出來,一般是object
((DateTime)objectFromDB).ToString("yyyy-MM-dd");
如datetime.Text = ((DateTime)dr["DateTime"]).ToString("yyyy-MM-dd");
在ASP.NET 2.0的Gridview中如果要在綁定列中顯示比如日期格式等,如果用下面的方法是顯示不了的。
<asp :BoundField DataField="CreationDate"
DataFormatString="{0:M-dd-yyyy}"
HeaderText="CreationDate" />
主要是由于htmlencode屬性默認設置為true,已防止XSS攻擊,安全起見而用的,所以,可以有以下兩種方法解決
1.將htmlencode設置為false即可
<asp :GridView ID="GridView1" runat="server">
<columns>
<asp :BoundField DataField="CreationDate"
DataFormatString="{0:M-dd-yyyy}"
HtmlEncode="false"
HeaderText="CreationDate" />
</columns>
</asp>
2.另外的解決方法為,使用模版列
<asp :GridView ID="GridView3" runat="server" >
<columns>
<asp :TemplateField HeaderText="CreationDate" >
<edititemtemplate>
<asp :Label ID="Label1" runat="server"
Text='<%# Eval("CreationDate", "{0:M-dd-yyyy}") %>'>
</asp>
</edititemtemplate>
<itemtemplate>
<asp :Label ID="Label1" runat="server"
Text=’<%# Bind("CreationDate", "{0:M-dd-yyyy}") %>'>
</asp>
</itemtemplate>
</asp>
</columns>
</asp>
附錄-常用格式化公式:
{0:C} 貨幣;
{0:D4}由0填充的4個字符寬的字段中顯示整數;
{0:000.0}四舍五入小數點保留第幾位有效數字;
{0:N2}小數點保留2位有效數字;{0:N2}%?? 小數點保留2位有效數字加百分號;
{0:D}長日期;{0:d}短日期;{0:yy-MM-dd}?? 例如07-3-25;;{0:yyyy-MM-dd} 例如2007-3-25
總結
以上是生活随笔為你收集整理的asp.net日期显示 问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牵一头羊要1.5米线,100头需要多少米
- 下一篇: 券商股票是什么