datetime.TryParseExact具有不同格式的值

时间:2011-12-20 18:12:43

标签: c#

我有一个json字符串,其中包含datetime的值和一个如下所示的解析机制:

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

重写此解析代码的更好方法是每次都正确解析字符串。

感谢您的建议。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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