l4.Text = ds.Tables[0].Rows[i]["Comment_DateTime"].ToString();数据库里取出来的datatime格式转化为string了  但是显示的是:2011-11-12 0:00:00而我想要的格式是 2011-11-11  除了截取还有其他办法吗?

解决方案 »

  1.   

    DateTime.Parse(...).ToShortDateString();
      

  2.   

    l4.Text = ds.Tables[0].Rows[i]["Comment_DateTime"]==null?"":ds.Tables[0].Rows[i]["Comment_DateTime"].ToString("yyyy-MM-dd");
      

  3.   

    可自定义时间格式,如:
    DateTime MyDate = new DateTime(2011, 11, 12, 0, 0, 0);
    String MyString = MyDate.ToString("YYYY-MM-dd");
    输出:2011-11-11 
    备注(区分大小写):
    yyyy:显示指定的 DateTime 的年份部分(包括纪元)。如果年份长度小于四位,则按需要在前面追加零以使显示的年份长度达到四位。
    MM:显示月份,以 1 到 12 之间(包括 1 和 12)的一个数字表示。如果月份是一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。(注意是大写!)
    dd:显示月份的当前日期,以 1 到 31 之间的一个数字表示,包括 1 和 31。如果日期只有一位数字 (1-9),则将其格式化为带有前导 0 (01-09)。(注意是小写!)
    h:以 1 到 12 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 12)或中午(也显示为 12)后经过的整小时数。如果单独使用这种格式,则无法区别某一小时是中午以前还是中午以后的时间。如果该小时是单个数字 (1-9),则它显示为单个数字。显示小时时不发生任何舍入。例如,DateTime 为 5:43 时返回 5。
    hh:以 1 到 12 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 12)或中午(也显示为 12)后经过的整小时数。如果单独使用这种格式,则无法区别某一小时是中午以前还是中午以后的时间。如果该小时是单个数字 (1-9),则将其格式化为前面带有 0 (01-09)。
    HH:以 0 到 23 范围中的一个数字显示指定的 DateTime 的小时数,该小时数表示自午夜(显示为 0)后经过的整小时数。如果该小时是单个数字 (0-9),则将其格式化为前面带有 0 (01-09)。
    mm:以 0 到 59 范围中的一个数字显示指定的 DateTime 的分钟数,该分钟数表示自上一小时后经过的整分钟数。如果分钟是一位数字 (0-9),则将其格式化为带有前导 0 (01-09)。
    ss:以 0 到 59 范围中的一个数字显示指定的 DateTime 的秒数,该秒数表示自上一分钟后经过的整秒数。如果秒是一位数字 (0-9),则将其格式化为带有前导 0 (01-09)。 
      
      
      

  4.   

    楼主笔误了 呵呵  2011-11-12 00:00:00  转换成2011-11-11? 应该是2011-11-12
    如果是这样的话 那就用l4.Text = ds.Tables[0].Rows[i]["Comment_DateTime"].ToString("yyyy-MM-dd");
      

  5.   

    以上说的方法为什么不可以?? 说不能将string类型转换为一个接口Iform...
      

  6.   


    改正下 
    这样的话 必须是datatime类型的才可以有这样的Tostring("yyyy-MM-DD")格式l4.Text = DateTime.Parse(ds.Tables[0].Rows[i]["Comment_DateTime"]).ToString("yyyy-MM-dd");
      

  7.   

    l4.Text = ds.Tables[0].Rows[i]["Comment_DateTime"].ToString("yyyy-MM-dd");