我正在使用MS Access数据库在VS 2010中开发已经开发的桌面应用程序。该应用程序在dd/MM/yyyy
格式下运行良好。但是,以下代码使用Convert.ToDateTime
将datetime
中的dd/MM/yyyy
字符串更改为系统的格式,从而产生错误。
for (int i = 0; i <= (Convert.ToDateTime(dtp_Date.Text) - Convert.ToDateTime(dt.Rows[0]["Dat"].ToString())).TotalDays; i++)
{
double dtSale = _objCashInHand.getSaleSum(Convert.ToDateTime(dt.Rows[0]["Dat"].ToString()).AddDays(j).ToShortDateString().ToString());
double dtPurchase = _objCashInHand.getPurchaseSum(Convert.ToDateTime(dt.Rows[0]["Dat"].ToString()).AddDays(j).ToShortDateString().ToString());
double dtEventOrder = _objCashInHand.getEventOrder(Convert.ToDateTime(dt.Rows[0]["Dat"].ToString()).AddDays(j).ToShortDateString().ToString());
double dtCredit = _objCashInHand.getCreditSum(Convert.ToDateTime(dt.Rows[0]["Dat"].ToString()).AddDays(j).ToShortDateString().ToString());
double dtDebit = _objCashInHand.getDebitSum(Convert.ToDateTime(dt.Rows[0]["Dat"].ToString()).AddDays(j).ToShortDateString().ToString());
double previousvalue = Convert.ToDouble(dgv_Cash.Rows[(i + 1) - 1].Cells["OpeningAmount"].Value.ToString());
dgv_Cash.Rows.Add(Convert.ToDateTime(dt.Rows[0]["Dat"].ToString()).AddDays(j).ToShortDateString(), dtSale, dtEventOrder, dtPurchase, dtCredit, dtDebit, (previousvalue + Convert.ToDouble(dtSale) + Convert.ToDouble(dtEventOrder) - Convert.ToDouble(dtPurchase) + Convert.ToDouble(dtCredit) - Convert.ToDouble(dtDebit)).ToString());
j++;
}
我尝试使用DateTime.ParseExact(dtp_Date.Text, "dd/MM/yyyy", CultureInfo.InvariantCulture)
,但日期时间格式仍为系统格式。
即使在for loop
正常工作,我该如何将日期时间格式保持在dd / MM / yyyy?
答案 0 :(得分:0)
在将DateTime转换为字符串时,您还需要指定Invariantculture。