将字符串转换为日期时间[2017年3月1日星期三上午6:00]此格式的c#
我有一张excel表格,表格上有日期和时间两列,日期格式是2017年3月1日星期三上午6:00,而时间格式是早上6:00,我从excel表格中获取数值,并将这两列与一个空格组合在一起,使得2017年3月1日星期三上午6:00看起来像这样。现在我想把这个字符串转换成datetime。我尝试了很多方法,但我得到的错误是字符串不是有效的日期时间格式将字符串转换为日期时间[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
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,另一种方法是将日期和时间拆分为单独的列(就像它们最初一样)。