C# DateTime.ParseExact正在引发以下错误";字符串未被识别为有效的日期时间;

C# DateTime.ParseExact正在引发以下错误";字符串未被识别为有效的日期时间;,c#,datetime,sharepoint,C#,Datetime,Sharepoint,我正在为我的sharepoint构建一个控制台应用程序。现在我有一个名为“OrderLiveDeliveredDate”的DateTime字段,我想根据另一个名为“CustomerOrderContractLengthmonth”的字段值为它添加月份 现在,“OrderLiveDeliveredDate”日期格式如下所示{15/06/2018 00:00:00}。因此,我编写了以下代码行,将字段值转换为DateTime,然后添加月份:- DateTime expiryDate = DateTim

我正在为我的sharepoint构建一个控制台应用程序。现在我有一个名为“OrderLiveDeliveredDate”的DateTime字段,我想根据另一个名为“CustomerOrderContractLengthmonth”的字段值为它添加月份

现在,“OrderLiveDeliveredDate”日期格式如下所示
{15/06/2018 00:00:00}
。因此,我编写了以下代码行,将字段值转换为DateTime,然后添加月份:-

DateTime expiryDate = DateTime.ParseExact(item["OrderLiveDeliveredDate"].ToString(), "dd/mm/yyyy", CultureInfo.InvariantCulture).AddMonths(int.Parse(  item["CustomerOrderContractLengthmonth"].ToString()));
但这引发了以下例外情况:-

字符串未被识别为有效的日期时间

是否尝试此操作

DateTime expiryDate = DateTime.ParseExact("15/06/2018", "dd/MM/yyyy", CultureInfo.InvariantCulture).AddMonths(int.Parse("2"));
我已从日期字符串中删除了时间组件。如果必须使用时间组件,请尝试以下操作

DateTime expiryDate = DateTime.ParseExact("15/06/2018 00:00:00", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture).AddMonths(int.Parse("2"));
快速测试用测试仪-

代码:

你试过这个吗

DateTime expiryDate = DateTime.ParseExact("15/06/2018", "dd/MM/yyyy", CultureInfo.InvariantCulture).AddMonths(int.Parse("2"));
我已从日期字符串中删除了时间组件。如果必须使用时间组件,请尝试以下操作

DateTime expiryDate = DateTime.ParseExact("15/06/2018 00:00:00", "dd/MM/yyyy HH:mm:ss", CultureInfo.InvariantCulture).AddMonths(int.Parse("2"));
快速测试用测试仪-

代码:

要求格式字符串完全匹配

根据文件

使用指定的格式和区域性特定的格式信息,将日期和时间的指定字符串表示形式转换为其等效的日期时间。字符串表示形式的格式必须与指定的格式完全匹配。

(我的重点。)

在您的情况下,假设
{15/06/2018 00:00:00}
是存储在
项[“OrderLiveDeliveredDate”]
中的实际值,您希望将
“{dd/MM/yyyyy HH:MM:ss}”作为格式字符串。如果大括号不是字符串的成员,则
“dd/MM/yyyy HH:MM:ss”
应该可以正常工作。

要求格式字符串完全匹配

根据文件

使用指定的格式和区域性特定的格式信息,将日期和时间的指定字符串表示形式转换为其等效的日期时间。字符串表示形式的格式必须与指定的格式完全匹配。

(我的重点。)


在您的情况下,假设
{15/06/2018 00:00:00}
是存储在
项[“OrderLiveDeliveredDate”]
中的实际值,您希望将
“{dd/MM/yyyyy HH:MM:ss}”作为格式字符串。如果大括号不是字符串的成员,则
“dd/MM/yyyy HH:MM:ss”
应该可以正常工作。

ParseExact需要精确匹配。如果您的日期字符串字面上是
{15/06/2018 00:00:00}
,那么您应该匹配到
“{dd/MM/yyyy hh:MM:ss}”
您需要在几个月内使用大写的
M
。小写的
m
是分钟。ParseExact需要精确匹配。如果您的日期字符串字面上是
{15/06/2018 00:00:00}
,那么您应该匹配到
“{dd/MM/yyyy hh:MM:ss}”
您需要在几个月内使用大写的
M
。小写的
m
是分钟。