-1

我正在尝试在日期时间转换字符串值。我知道这个问题被问了很多次。但我检查了几乎所有的答案。但我没有得到我的问题的答案。

以下是我的代码:

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.

4

3 回答 3

2

我检查了问题,似乎您的字符串格式不正确,因此 ParseExact 抛出错误。

如果你改变你的字符串

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

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

代码有效

还检查了这个

在此处输入图像描述

于 2013-04-05T11:42:32.377 回答
1

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

  DateTime.Parse(ObjTime, CultureInfo.GetCultureInfo("en-us"));
于 2013-04-05T11:33:20.307 回答
1

您的字符串有一位数的日期和月份,并且您正在尝试使用仅支持两位数日/月的格式对其进行解析

你应该做:

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

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

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

于 2013-04-05T11:36:00.157 回答