我正在尝试转换日期时间中的字符串值。我知道这个问题被问过这么多次。但我检查了大部分答案。但我没有得到我的问题的答案。
以下是我的代码:
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
。
答案 0 :(得分:2)
我检查了问题,看起来你的字符串格式不正确,因此ParseExact会抛出错误。
如果您从
更改字符串string ObjTime = "5/4/2013 10:30 PM";
到
string ObjTime = "05/04/2013 10:30 PM";
代码有效
同时检查了这个
答案 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);
您应该使用单d
和M
,这将支持单位数和两位数的日/月进行解析。
您还应该使用小写h
,因为您在字符串中有PM
。因此,您的最终格式应为"d/M/yyyy h:mm tt"