私はVS 2010で既に開発されたデスクトップアプリケーションをMS Accessデータベースで使用しています。このアプリケーションはdd/MM/yyyy
フォーマットでうまくいきます。しかし、次のコードではConvert.ToDateTime
を使用して、の文字列をdd/MM/yyyy
に変更してシステムのフォーマットに変換するため、エラーが発生します。C#でDateTime形式が変更されない
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)
を使用しようとしましたが、datetime形式はまだシステムの形式です。
適切な作業のために、でも日時フォーマットをdd/MM/yyyyに保つにはどうすればよいですか?
エポックのシステムフォーマットですか? –
'DateTime.ParseExact'はフォーマットを変更しません。あなたの文字列を' DateTime'の内部システム表現にパースしています。 'Watch'ウィンドウで見ると、単純に' ToString'メソッドを呼び出しています。フォーマット。オブジェクト自体は変化しません。 –
@ DLNarasimhan:いいえ、システムフォーマットはエポックではありません。 –