使用DateTime.ParseExact()函数转换String时出错

时间:2013-04-05 11:31:41

标签: c# datetime visual-studio-2012

我正在尝试转换日期时间中的字符串值。我知道这个问题被问过这么多次。但我检查了大部分答案。但我没有得到我的问题的答案。

以下是我的代码:

string ObjTime = "5/4/2013 10:30 PM";

DateTime d = DateTime.ParseExact(ObjTime, "dd/MM/yyyy H:mm", CultureInfo.CurrentCulture);

我还通过改变我的系统日期时间格式来检查。

我也使用过这个:

DateTime d = DateTime.ParseExact(ObjTime, "d/M/yyyy H:mm tt", CultureInfo.CurrentCulture);

任何人都可以帮我解决这个问题吗?

我也通过将格式更改为d/m/yyy H:mm来检查,但它仍然给我错误。我正在使用Visual Studio 2012

3 个答案:

答案 0 :(得分:2)

我检查了问题,看起来你的字符串格式不正确,因此ParseExact会抛出错误。

如果您从

更改字符串
string ObjTime = "5/4/2013 10:30 PM";

string ObjTime = "05/04/2013 10:30 PM";

代码有效

同时检查了这个

enter image description here

答案 1 :(得分:1)

您可以尝试指定此格式有效的区域性,而不是显式指定格式字符串。对于EN-US文化:

  DateTime.Parse(ObjTime, CultureInfo.GetCultureInfo("en-us"));

答案 2 :(得分:1)

您的字符串包含单个数字的日期和月份,并且您尝试使用仅支持每天/每月两位数

的格式进行解析

你应该这样做:

string ObjTime = "5/4/2013 10:30 PM";
DateTime d = DateTime.ParseExact(ObjTime, "d/M/yyyy h:mm tt", CultureInfo.CurrentCulture);

您应该使用单dM,这将支持单位数和两位数的日/月进行解析。

您还应该使用小写h ,因为您在字符串中有PM。因此,您的最终格式应为"d/M/yyyy h:mm tt"