5

我想不通,我哪里出错了?

我得到了以下日期时间字符串,需要将其解析为日期时间:

string timestr = "1/20/2014 12:05:16 AM"

我试图像这样解析它:

DateTime.ParseExact( timestr,
                     "MM/dd/yyyy hh:mm:ss tt",
                     null);

尝试执行此操作时,它会返回

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

任何提示?

4

5 回答 5

12

MM01为了12

改用Mwhich is for 1to 12

string timestr = "1/20/2014 12:05:16 AM";
var date = DateTime.ParseExact(timestr,
                               "M/dd/yyyy hh:mm:ss tt",
                               CultureInfo.InvariantCulture);
Console.WriteLine(date);

输出将是;

1/20/2014 12:05:16 AM

这里一个demonstration.

有关更多信息,请查看;

还要注意你的小时格式。hh01为了12HH00为了23。如果您的时间是13,1415等等..hh格式将失败。

而且由于您在方法中使用nullas a ,这意味着它默认使用。如果不是,您的方法甚至会抛出您的字符串和格式完全匹配,因为格式说明符在自定义日期和时间格式中具有特殊含义,例如;替换我当前文化的或提供的文化日期分隔符IFormatProviderDateTime.ParseExactCurrentCultureDateSeparator/FormatException "/"

于 2014-01-20T09:00:36.213 回答
0

你试过了吗

 DateTime returnedDate = new DateTime();
 DateTime.TryParse(timestr, out returnedDate);
于 2014-01-20T09:02:14.350 回答
0

请试试

string timestr = "1/20/2014 12:05:16 AM";
DateTime dt = new DateTime();
DateTime.TryParse(timestr, out dt);
于 2014-01-20T09:17:27.210 回答
0

M- 月份,从 1 到 12。

“M”自定义格式说明符将月份表示为从 1 到 12 的数字(或者对于有 13 个月的日历,从 1 到 13)。单位数月份的格式不带前导零。

DateTime.ParseExact( timestr,"M/dd/yyyy hh:mm:ss tt",CultureInfo.InvariantCulture);

登录

于 2014-01-20T09:08:45.073 回答
-2

试试这个:

this.RequestDate = Convert.ToDateTime(this.DcmCreateDate).ToString("dd/MM/yyyy");
于 2014-01-20T09:01:30.723 回答