DateTime.TryParseExact转换" 15"下午3点至下午3点

时间:2016-08-03 20:00:18

标签: c# datetime

我有一个用于演示目的的功能:

public static bool doSomething (int year, int month, int date, int hour, int minute, int second)
{
        string dateFormat = "M/d/yyyy hh:mm:ss";
        string hourstring = hour < 10 ? string.Format("{0}0", hour) : hour.ToString();
        string minuteString = minute < 10 ? string.Format("0{0}", minute) : minute.ToString();
        string secondString = second < 10 ? string.Format("0{0}", second) : second.ToString();

        var dateString = string.Format("{0}/{1}/{2} {3}:{4}:{5}", month, date, year, hourString, minuteString, secondString);

        DateTime testDate = new DateTime();

        bool test = DateTime.TryParseExact(dateString, dateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out testDate);

        return test;
}

我已尝试将我的功能称为doSomething(2016, 1, 1, 15, 0, 0)

所以我试图让我的函数在解析日期2016年1月1日下午3:00:00时返回true。 但它总是返回错误。

我的dateFormat字符串不正确吗?如何让TryParseExact将15小时解释为下午3点?

由于

1 个答案:

答案 0 :(得分:2)

您使用的是小写hh格式为12小时,并且您传递的15为24小时格式。

以您的格式使用HH (大写)

string dateFormat = "M/d/yyyy HH:mm:ss";

有关详情,请参阅:Custom Date and Time Format Strings