mssql数据库datetime类型字段(要求字段类型不能改变)里的内容是如下格式:2008/9/17 20:39:59请问如何用最有效率的算法使“2008/9/17 20:39:59”格式读出后成为“2008年9月17日 20时39分”(我用截取指定位置的方法太麻烦,因为要判断月份和日期是1位还是2位,还要判断小时和分钟部分是1位还是2位……)谢谢!!

解决方案 »

  1.   


    DateTime dt = DateTime.Now;
    Label1.Text = dt.GetDateTimeFormats('f')[0].ToString();//2008年9月12日 21:57
    Label2.Text = string.Format("{0:f}",dt);//2008年9月12日 21:57
      

  2.   

    DateTime.ToString("yyyy年MM月dd日 hh时:mm分");
      

  3.   

    try...string test = "2008/9/17 20:39:59";
    string result = DateTime.Parse(test).ToString("yyyy年M月d日 H时m分");
    MessageBox.Show(result);
      

  4.   

    我的代码是这样的:
    <asp:Label ID="timeLabel" runat="server" Text='<%# Eval("time") %>'></asp:Label>有没有办法不通过后台操作,直接在上面的代码中改,或在在MS SQL SELECT 语句中改?SELECT [time] FROM [xxxx] ……再次感谢!
      

  5.   

    楼上的都不完善。
    GetDateTimeFormats方法转换不出2008年9月17日 20时39分这种格式。
    还是要自己写函数转换。
      

  6.   

    SQL中有CONVERT函数可转化日期,但也达不到LZ要的格式。
      

  7.   

    试试这个:
    <asp:Label ID="timeLabel" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "time", "{0:yyyy年M月d日 HH时mm分}") %>'></asp:Label>
      

  8.   

    或者试试这个:
    <asp:Label ID="timeLabel" runat="server" Text='<%# Eval("time", "{0:yyyy年M月d日 HH时mm分}")  %>'></asp:Label>
      

  9.   

    感谢wuyi8808,可是不行啊………………