遇到了传递格式的问题。

if (!DateTime.TryParseExact(dateString, "MM/dd/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateOn))
{
     return false;
}
else if (!DateTime.TryParseExact(timeString, "hh:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out timeOn))
{
     return false;
}

return SaveWorkshop(id, name, dateOn, timeOn, capacity, description, duration, isCancelled);

使用 Bootstrap Datetimepicker,它确实从文本框中以格式获取字符串



但在结果中我确实有错误并且正在解析默认日期。可能是什么问题呢?

最佳答案

对于您的 timeString ,您需要使用 h 而不是 hh 说明符。

hh specifier 需要一个 leading zero 来表示单个数字,例如 06 。您需要改用 h specifier

这就是为什么你的第二个 DateTime.TryParseExact 返回 false 并且 timeOn 将是它的默认值。

关于c# - DateTime.TryParseExact C# 有效格式和解析,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33915791/

10-12 16:57