InvalidCastException 将字符串转换为 DateTime
InvalidCastException convert string to DateTime
基本上是尝试读入一个文件并将其从 7 列更改为 5 列,并更改日期格式。应该补充一点,我正在使用 linqpad 并且语言是 C# 语句。
代码:
string txtFolderPath = @"D:\Testing\BM\";
string[] files = Directory.GetFiles(txtFolderPath, "cplt.csv", SearchOption.AllDirectories);
//files.Dump();
foreach (string file in files)
{
// reading in csv file
var csvData = from row in new CpltData(@file, 1000000, 1000000, "")
//@"C:\Miu\Blue Fin III - A\Blue Fin III - A\cplt.csv"
select new
{
Period = row.Period,
IndexEltId = row.IndexEltId,
EventId = row.EventId,
Date = row.Date.ToString("dd-MMM-yyyy HH.mm.ss"),
Payout = row.Payout
};
//csvData.Dump();
Util.WriteCsv(csvData, @file);
}
Error message: InvalidCastException Couldn't convert value '8/22/2015
1:19:01 AM' to DateTime in row 2
错误发生在以下行:
var csvData = from row in new CpltData(@file, 1000000, 1000000, "")
CpltData(string csvFilePath, int noOfPeriods, double principal, string currency)
它是从某个 dll 导入的,不确定如何访问它:/
错误消息非常清楚:您正在使用一个非常好的 DateTime
变量,将其转换为字符串,然后您试图将该字符串分配给另一个 DateTime
变量。那不计算。
DateTime
变量中没有 "date format" 这样的东西。
A DateTime
仅包含一个日期,在内部表示中与您可能拥有的年、月等任何概念完全无关。"date format" 是您在显示 DateTime
.
时使用
因此,只需将您的 row.Date
分配给您的 Date
即可完成这段代码。
稍后,当需要显示 Date
时,然后 应用 "date format"。
基本上是尝试读入一个文件并将其从 7 列更改为 5 列,并更改日期格式。应该补充一点,我正在使用 linqpad 并且语言是 C# 语句。
代码:
string txtFolderPath = @"D:\Testing\BM\";
string[] files = Directory.GetFiles(txtFolderPath, "cplt.csv", SearchOption.AllDirectories);
//files.Dump();
foreach (string file in files)
{
// reading in csv file
var csvData = from row in new CpltData(@file, 1000000, 1000000, "")
//@"C:\Miu\Blue Fin III - A\Blue Fin III - A\cplt.csv"
select new
{
Period = row.Period,
IndexEltId = row.IndexEltId,
EventId = row.EventId,
Date = row.Date.ToString("dd-MMM-yyyy HH.mm.ss"),
Payout = row.Payout
};
//csvData.Dump();
Util.WriteCsv(csvData, @file);
}
Error message: InvalidCastException Couldn't convert value '8/22/2015 1:19:01 AM' to DateTime in row 2
错误发生在以下行:
var csvData = from row in new CpltData(@file, 1000000, 1000000, "")
CpltData(string csvFilePath, int noOfPeriods, double principal, string currency)
它是从某个 dll 导入的,不确定如何访问它:/
错误消息非常清楚:您正在使用一个非常好的 DateTime
变量,将其转换为字符串,然后您试图将该字符串分配给另一个 DateTime
变量。那不计算。
DateTime
变量中没有 "date format" 这样的东西。
A DateTime
仅包含一个日期,在内部表示中与您可能拥有的年、月等任何概念完全无关。"date format" 是您在显示 DateTime
.
因此,只需将您的 row.Date
分配给您的 Date
即可完成这段代码。
稍后,当需要显示 Date
时,然后 应用 "date format"。