C# datetime format无法比较

标签 c# datetime lambda

我试图将日期与我需要的格式进行比较,但总是失败

FormatException: String was not recognized as a valid DateTime.

我使用了正确的格式,但可能存在什么问题?

My Sample Date format: "2018/04/13 18:56:02"


string format = "yyyy/MM/dd HH:mm:ss"; //date should always be in this format as per my requirement

轨迹 1

_context.LogEntities.
.Where(p => (p.timestamp) > DateTime.Now.AddDays(-1))

轨迹 2

_context.LogEntities.
.Where(p => (DateTime.ParseExact(p.timestamp, format, CultureInfo.InvariantCulture)) > DateTime.Now.AddDays(-1))

轨迹 3

_context.LogEntities
.Where(p => Convert.ToDateTime(DateTime.ParseExact(p.timestamp, format, CultureInfo.InvariantCulture)) > DateTime.Now.AddDays(-1))

最佳答案

如果您的时间戳采用指定的格式,您可以使用它创建一个 DateTime 对象,如下所示:Parse string to DateTime in C#

然后,您可以通过简单地使用比较运算符 < 来比较两个 DateTime , <= , == , > , >=

所以,你的尝试 2 应该可以工作。

请仔细检查此尝试,因为在这种情况下您没有理由收到此错误消息。

正如评论中所建议的,您可以尝试重写代码,以便更容易调试。

如果您可以找到一种方法来使用 DateTime.Parse 单独执行转换(例如在一个简单的循环中),那么您将可以更轻松地检查不同的值以及引发异常的方式和原因。

关于C# datetime format无法比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49825688/

相关文章:

python - 如何将 Postgres 日期时间字段设置为 Odoo 日期时间字段

python - 如何仅减去 2 个 Pandas 列中的时间(不包括日期)?

c# - 为什么我不能使用这个嵌套的 lambda 表达式?

c# - wpf 阿拉伯文字显示不正确

c# - 为什么未加载ScriptableObject Assets 中的嵌套资源引用?

c# - 使用 itextsharp 将页面插入现有 PDF

c# - 动态递归 lambda 表达式

c# - 最小起订量问题 - 仅在构建服务器 (TeamCity) 上

javascript - 从字符串中提取日期

python - 应用具有两个数据框字段的函数