2011-12-20 33 views
1

的我有一个包含一个datetime和看起来像这样解析机制值的JSON字符串:datetime.TryParseExact不同格式的值

if (DateTime.TryParseExact(TheUserTimeString, "M.d.yyyy.HH.mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out TheUserTime)) 
{ 
    TheObject.UserDateTime = TheUserTime; 
} 

字符串TheUserTimeString客户端上产生的。它可以是12.20.2011.13.21和代码工作正常,但当它是12.20.2011.13.2代码中断,因为分钟是在一个数字。而当这个月也在一个数字......谁知道。

什么是重写此分析代码的更好方法,以便每次都能正确解析字符串。

感谢您的建议。

+0

你可以改变Mdyyy.HH.m“是一个string.format和这种方式..?或者可能添加MM.dd否则听起来像你将不得不做一个检查,如果分钟在长期是<2 1-9应该失败......这是一个正确的假设 – MethodMan 2011-12-20 18:17:02

回答

3

使用字符串"M.d.yyyy.HH.m",单个m表示没有前导0的分钟。Source

+0

好吧,这也适用于两个数字格式的值,如12月12日? – frenchie 2011-12-20 18:22:14

+0

是的,两种情况下(一位数和两位数分钟)将工作,所以将月份数。 – wsanville 2011-12-20 18:29:40

+0

好吧,伟大的提示;感谢您的答案 – frenchie 2011-12-20 18:35:40

1

您的DateTime格式字符串只需要是:"M.d.yyyy.H.m"
这允许将月,日,小时和分钟表示为单个数字值。

请参阅here for the MSDN page记录此字符串的有效格式以获取更多信息。