C# datetime.TryParseExact具有不同格式的值

C# datetime.TryParseExact具有不同格式的值,c#,C#,我有一个包含日期时间值的json字符串和一个解析机制,如下所示: if (DateTime.TryParseExact(TheUserTimeString, "M.d.yyyy.HH.mm", CultureInfo.InvariantCulture, DateTimeStyles.None, out TheUserTime)) { TheObject.UserDateTime = TheUserTime; } 在客户端上生成字符串TheUserTimeString。它可以是12.

我有一个包含日期时间值的json字符串和一个解析机制,如下所示:

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
时,代码中断,因为分钟是一位数字。当月份也是一位数时。。。谁知道呢

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


谢谢您的建议。

使用字符串“M.d.yyy.HH.M”,单个
M
表示没有前导0的分钟

使用字符串
“M.d.yyyy.HH.M”
,单个
M
表示没有前导0的分钟

您的日期时间格式字符串只需要是:
“M.d.yyyy.H.M”

这允许将月、日、小时和分钟表示为单个数字值


有关详细信息,请参阅记录此字符串的有效格式。

您的日期时间格式字符串只需是:
“M.d.yyy.H.M”

这允许将月、日、小时和分钟表示为单个数字值


有关更多信息,请参阅记录此字符串的有效格式。

是否可以将M.d.yyy.HH.M“更改为string.format并以这种方式进行更改?或者添加MM.dd,否则听起来您必须检查长度<2 1-9的分钟数是否应失败…这是正确的假设您可以更改M.d.yyy.HH.M吗?”要使用string.format格式,那么。。?或者可能添加MM.dd,否则听起来您必须检查长度方面的分钟数是否小于2 1-9应该失败…这是正确的假设吗?ok,当值为两位数格式(如12月份的12)时,这也有效吗?是的,两种情况(一位数和两位数代表分钟)都有效,月份数也有效。ok,当数值为两位数格式(如12月的12位)时,这也适用吗?是的,两种情况(一位数和两位数表示分钟)都适用,月份数字也适用。