如何在c#中将“91212”解析为“Hmmss”?

时间:2012-08-02 16:15:02

标签: c# datetime

代码:

var str = "91212";
DateTime.ParseExact(str, "Hmmss", System.Globalization.CultureInfo.CurrentCulture);

错误:

"91212" is not a valid DateTime

似乎c#尝试使用H来匹配91,这是不正确的时间。

如何解决?

2 个答案:

答案 0 :(得分:3)

Haccording to MSDN被解释为:

  

小时,使用从0到23的24小时制。

因此您所看到的行为是按设计和记录的。

你可以在91212前加零吗?

答案 1 :(得分:1)

我认为您必须强制它为6个字符并相应地定义格式字符串。以下代码:

        var str = "91212";
        if (str.Length == 5)
        {
            str = "0" + str;
        }
        var dtDate = DateTime.ParseExact(str, "HHmmss", System.Globalization.CultureInfo.CurrentCulture);
        System.Diagnostics.Debug.WriteLine(dtDate.ToShortTimeString());

结果:

9:12 AM