none
ASP.NET中GridView日期格式显示的问题. RRS feed

  • 问题

  •  

    <Columns>
    <asp:BoundField DataField="datetime" HeaderText="日期" DataFormatString="{0:yyyy-MM-dd}"  HtmlEncode="false" SortExpression="datetime" />
    </Columns>

    这样的一个日期列,显示出来的日期无论如何都是 2010-10-10 00:00:00
    请问如何解决?造成这个问题的原因是什么? 我看到网络上有人说加上 “  HtmlEncode="true" ” 就可以解决问题,但是在我这里行不通...

    2010年7月27日 12:34

答案

  • DataFormatString="{0:d}"

    说明:

    d 精简日期格式 MM/dd/yyyy
    D 详细日期格式 dddd, MMMM dd, yyyy
    f 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mm
    F 完整日期时间格式 (long date + long time) dddd, MMMM dd, yyyy HH:mm:ss
    g 一般格式 (short date + short time) MM/dd/yyyy HH:mm
    G 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ss
    m,M 月日格式 MMMM dd
    s 适中日期时间格式 yyyy-MM-dd HH:mm:ss
    t 精简时间格式 HH:mm
    T 详细时间格式 HH:mm:ss


    family as water
    2010年7月27日 15:37
  •     protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("birthday", typeof(DateTime));
            DataRow dr = dt.NewRow();
            dr["name"] = "张三";
            dr["birthday"] = DateTime.Now;
            dt.Rows.Add(dr);
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }

        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
                <Columns>
                    <asp:BoundField HeaderText="生日" DataField="birthday" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False"/>
                </Columns>
            </asp:GridView>
        </div>
        </form>

    显示:

    生日
    2010-07-28

    2010年7月27日 19:26

全部回复

  • DataFormatString="{0:d}"

    说明:

    d 精简日期格式 MM/dd/yyyy
    D 详细日期格式 dddd, MMMM dd, yyyy
    f 完整格式 (long date + short time) dddd, MMMM dd, yyyy HH:mm
    F 完整日期时间格式 (long date + long time) dddd, MMMM dd, yyyy HH:mm:ss
    g 一般格式 (short date + short time) MM/dd/yyyy HH:mm
    G 一般格式 (short date + long time) MM/dd/yyyy HH:mm:ss
    m,M 月日格式 MMMM dd
    s 适中日期时间格式 yyyy-MM-dd HH:mm:ss
    t 精简时间格式 HH:mm
    T 详细时间格式 HH:mm:ss


    family as water
    2010年7月27日 15:37
  • 你好

    看來你的CODE 是沒有問題的 你的資料是不是從資料庫取出, 你在資料庫的DATATYPE 是不是DATETIME 還是 VARCHAR?

    或者你可以嘗試以下的CODE 看看 能不能 把資料轉成別一個FORMAT看看, 因為我的做法和你一樣的

    <asp:boundfield datafield="datetime" dataformatstring="{0:MM/dd/yy}" htmlencode="false" />

    please forgive me if I mis-understood your questions

    Chi

     

    2010年7月27日 15:37
  •     protected void Page_Load(object sender, EventArgs e)
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("name", typeof(string));
            dt.Columns.Add("birthday", typeof(DateTime));
            DataRow dr = dt.NewRow();
            dr["name"] = "张三";
            dr["birthday"] = DateTime.Now;
            dt.Rows.Add(dr);
            GridView1.DataSource = dt;
            GridView1.DataBind();
        }

        <form id="form1" runat="server">
        <div>
            <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
                <Columns>
                    <asp:BoundField HeaderText="生日" DataField="birthday" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode="False"/>
                </Columns>
            </asp:GridView>
        </div>
        </form>

    显示:

    生日
    2010-07-28

    2010年7月27日 19:26