1

下面的方法应该接受 2400 作为结束时间的结束日期时间,但结果为空;

4

3 回答 3

3

来自该属性的MSDN 规范。DateTime.Hour

小时分量,表示为 0 到 23 之间的值。

因此,在您使用的 DateTime 的构造函数中,小时整数必须是 0 到 23 之间的值。 24 将抛出一个ArgumentOutOfRangeException,在您的代码中它将被空的 catch 块捕获(通常空的 catch 块是一个坏主意 - 请参阅这个答案)。

如果要将非标准的 2400 作为有效时间处理,则需要为其添加特殊处理。

于 2012-05-02T09:38:27.453 回答
0

如果要将非标准的 2400 作为有效时间处理,则需要为其添加特殊处理。

小时 % 2400

模运算符

于 2014-07-03T06:14:59.970 回答
0

ISO 8601 5.3.2 区分了 DateTime 的组合表示(例如 2013-01-22 14:30:00)和未组合的仅时间表示(例如 18:00)。对于未组合的仅时间表示,为了消除一天的开始与一天结束的歧义,ISO 规范规定值 24:00 是 24 小时一天结束的有效表示。Microsoft 在 .NET 客户端或 SQL Server 中不遵循此 ISO 规范,您将需要使用上面建议的解决方法之一。(其他数据库,如 PostgreSQL、DB2 和 SQLite 确实遵守 ISO 规范。)

于 2013-01-23T09:15:54.593 回答