C# 在asp.net中将数据表日期转换为dd/mm/yyyy格式

C# 在asp.net中将数据表日期转换为dd/mm/yyyy格式,c#,asp.net,datetime,datatable,C#,Asp.net,Datetime,Datatable,我有一个datatable,我想在其中以dd/mm/yyyy格式获取日期 现在我的约会像 2012年01月02日12:00:00上午 下面是我的代码 strInvoice_date = dt.Rows[i]["INVOICE_DATE"].ToString(); 必须在ToString()方法中传递所需的日期格式 有关日期时间格式的详细信息,请参见dt.Rows[i][“发票日期”]retunsobject,当您调用ToString方法时,它将调用not 如果数据表中的INVOICE\u DA

我有一个
datatable
,我想在其中以
dd/mm/yyyy
格式获取日期

现在我的约会像

2012年01月02日12:00:00上午

下面是我的代码

strInvoice_date = dt.Rows[i]["INVOICE_DATE"].ToString();

必须在ToString()方法中传递所需的日期格式

有关日期时间格式的详细信息,请参见
dt.Rows[i][“发票日期”]
retuns
object
,当您调用
ToString
方法时,它将调用not

如果数据表中的
INVOICE\u DATE
列是
DateTime
,则可以显式地将
对象
强制转换为
DateTime
,并使用
dd/MM/yyyyyy
(我假设您想要的是月而不是分钟)格式和适当的区域性,如

如果数据表中的
INVOICE\u DATE
列是
string
,则需要使用
object.ToString
获取其字符串表示形式,将其解析为
Datetime
,并生成其字符串表示形式

var Invoice_date = DateTime.ParseExact(dt.Rows[i]["INVOICE_DATE"].ToString(), 
                                      "dd-MM-yyyy hh:mm:ss tt", 
                                       CultureInfo.InvariantCulture)
                          .ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
转换,然后根据需要表示:

  strInvoice_date = Convert.ToDateTime(dt.Rows[i]["INVOICE_DATE"]).ToString("dd/MM/yyyy");

下面的代码可以帮助您

strInvoice_date = Convert.ToDateTime(dt.Rows[i]["INVOICE_DATE"].ToString("0:dd/MM/yyyy"));

将错误获取为方法的
no重载需要1个参数
dt
中,发票日期的列类型是什么?是
DateTime
还是
string
dt.Rows[i][“INVOICE\u DATE”]
返回
object
,并且将
string
作为参数的
object.ToString()
没有重载。您需要使用DateTime转换列。strInvoice_date=Convert.ToDateTime(dt.Rows[i]“发票_date”].ToString(“0:dd/MM/yyyy”);我认为在这种情况下最好使用
ParseExact
,因为这种格式可能不是OP的
CurrentCulture
的标准日期和时间格式,因为
Convert.ToDateTime(object)
可能会在其中调用
ToString
方法。但是,由于OP选择了这个作为答案,它对这种情况无效:)这是更好的方法,为了避免头痛,定义文化信息很重要。
  strInvoice_date = Convert.ToDateTime(dt.Rows[i]["INVOICE_DATE"]).ToString("dd/MM/yyyy");
strInvoice_date = Convert.ToDateTime(dt.Rows[i]["INVOICE_DATE"].ToString("0:dd/MM/yyyy"));