c#datetime格式无法比较

时间:2018-04-13 22:01:54

标签: 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))

1 个答案:

答案 0 :(得分:3)

如果你的时间戳是指定的格式,你可以像这样创建一个DateTime对象:Parse string to DateTime in C#

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

来比较两个DateTime

所以,你的尝试2应该有效。

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

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

如果你能找到一种方法来单独执行与DateTime.Parse的转换,例如在一个简单的循环中,这将允许你更容易地检查不同的值以及引发异常的方式和原因。