我有一个datatable
,想要以dd/mm/yyyy
的格式获取日期。
目前我的日期格式为
02-01-2012 12:00:00 AM
以下是我的代码
strInvoice_date = dt.Rows[i]["INVOICE_DATE"].ToString();
转换并按您的要求表示:
strInvoice_date = Convert.ToDateTime(dt.Rows[i]["INVOICE_DATE"]).ToString("dd/MM/yyyy");
ParseExact
,因为此格式可能不是OP的CurrentCulture
的标准日期和时间格式,而Convert.ToDateTime(object)
可能会在其中调用ToString
方法。但由于OP选择了这个答案,所以对于这种情况无效 :) - Soner Gönül当你调用ToString
方法时,dt.Rows[i]["INVOICE_DATE"]
返回的是object
类型,并且它将调用object.ToString()
而不是DateTime.ToString()
。
如果你的datatable中的INVOICE_DATE
列是DateTime
类型,你可以显式地将object
转换为DateTime
类型,并使用dd/MM/yyyy
格式和一个正确的区域设置,例如InvariantCulture
。
var Invoice_date = (DateTime)dt.Rows[i]["INVOICE_DATE"]
.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
INVOICE_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);
你需要在ToString()方法中传递所需的日期格式。
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"));
dt.Rows[i]["INVOICE_DATE"]
返回 object
,且没有重载 object.ToString()
以带有 string
参数。 - Soner Gönül
dt
中的INVOICE_DATE
列类型是什么?它是DateTime
还是string
? - Soner Gönül