Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为日期时间[2017年3月1日星期三上午6:00]此格式的c#_C#_Excel_Datetime - Fatal编程技术网

将字符串转换为日期时间[2017年3月1日星期三上午6:00]此格式的c#

将字符串转换为日期时间[2017年3月1日星期三上午6:00]此格式的c#,c#,excel,datetime,C#,Excel,Datetime,我有一张excel表格,表格上有日期和时间两列,日期格式是2017年3月1日星期三上午6:00,而时间格式是早上6:00,我从excel表格中获取数值,并将这两列与一个空格组合在一起,使得2017年3月1日星期三上午6:00看起来像这样。现在我想把这个字符串转换成datetime。我尝试了很多方法,但我得到的错误是字符串不是有效的日期时间格式 string startDate = row.Cells[0].Value.ToString(); string startTime = row.Cel

我有一张excel表格,表格上有日期和时间两列,日期格式是2017年3月1日星期三上午6:00,而时间格式是早上6:00,我从excel表格中获取数值,并将这两列与一个空格组合在一起,使得2017年3月1日星期三上午6:00看起来像这样。现在我想把这个字符串转换成datetime。我尝试了很多方法,但我得到的错误是字符串不是有效的日期时间格式

string startDate = row.Cells[0].Value.ToString();
 string startTime = row.Cells[1].Value.ToString();

 var mydate = startDate+ " " + startTime; // it creates Wed Mar 01, 2017 6:00 AM, this is shown in debugger
 DateTime finaldate = DateTime.ParseExact(mydate, "r", null);
我希望将其转换为相同格式的datetime,因为我有另一个列,它告诉我这段时间也需要添加小时数,我正在使用
addHours()
来完成这一点。因此,我希望在添加小时后以相同的格式输出。
我无法将此格式的日期格式字符串设置为ParseExact。感谢您的帮助。谢谢

您可以指定自定义格式:

DateTime finaldate = DateTime.ParseExact(mydate, "ddd MMM dd, yyyy h:mm tt", CultureInfo.InvariantCulture);

尝试删除
Wed
部分。尝试过之后,错误仍然相同。欢迎:),您也可以阅读有关自定义
DateTime
格式的更多信息,现在我使用addHours()将小时添加到此日期,然后将新日期(添加小时后)写入新的CSV,但它读取日期中的逗号并更改csv中的列,例如,我在csv中的列日期中添加了
2017年3月1日星期三
,但它将
2017年3月1日星期三
放在日期列中,并将
2017年
放在下一个comun中。有解决方法吗?@SyedHarisAliGhaznavi您能将CSV delimeter从“,”更改为“;”?如果您是,那么您的CSV解析器将不会将日期中的“,”视为delimeter,另一种方法是将日期和时间拆分为单独的列(就像它们最初一样)。