如何在C#mvc5中转换字符串中的日期时间,使其不会获得空的日期时间值
我正在创建一个项目,希望在其中将数据库中的日期存储在列表中。我使用MVC5和C。在相应的控制器中,我将数据库中的值传递为:如何在C#mvc5中转换字符串中的日期时间,使其不会获得空的日期时间值,c#,linq,C#,Linq,我正在创建一个项目,希望在其中将数据库中的日期存储在列表中。我使用MVC5和C。在相应的控制器中,我将数据库中的值传递为: var order1 = (from a in context.DB_OrderDetails where a.OrderId == id select new { a.ActualCompletedAt, }).ToList
var order1 = (from a in context.DB_OrderDetails
where a.OrderId == id
select new
{
a.ActualCompletedAt,
}).ToList();
我用剧本写的
for (i = 0; i < result.order1.length; i++) {
str += '<tr>';
str += '<td> ' + order1[i].ActualCompletedAt + '</td>';
str += '<tr/>';
}
for(i=0;i
但在列表中,我得到的值是date/878978978979等。
在数据库中类似于“2015-09-2414:59:10.837”,即正确的日期和时间。
我需要在Linq查询中进行哪些修改,以使日期不为空 您应该调用
ToString
并正确设置格式:
ActualCompletedAt = a.ActualCompletedAt("MM/dd/yyyy")
我假设ActualCompletedAt
是一个DateTime
对象。如果这是一个可为空的DateTime
对象,则必须首先进行检查
ActualCompletedAt = a.ActualCompletedAt != null ? a.ActualCompletedAt.Value("MM/dd/yyyy") : ""
您应该调用
ToString
并正确设置格式:
ActualCompletedAt = a.ActualCompletedAt("MM/dd/yyyy")
我假设ActualCompletedAt
是一个DateTime
对象。如果这是一个可为空的DateTime
对象,则必须首先进行检查
ActualCompletedAt = a.ActualCompletedAt != null ? a.ActualCompletedAt.Value("MM/dd/yyyy") : ""
这就是json序列化程序处理日期的方式。我相信有一种方法可以控制它是如何完成的,但一个简单的解决方法是在控制器中以字符串形式返回日期,方法是在控制器中ActualCompletedAt之后附加.ToString()。这就是json序列化程序处理日期的方式。我相信有一种方法可以控制它是如何完成的,但一个简单的解决方法是在控制器中以字符串形式返回日期,方法是在控制器中的ActualCompletedAt之后附加.ToString() 我同意PeteGO的观点,结果看起来与空值无关 但要回答您的问题,避免为空,您可以使用:
var order1 = (from a in context.DB_OrderDetails
where a.OrderId == id
and a.ActualCompletedAt != null
select new
{
a.ActualCompletedAt.ToString("yyyy-MM-dd hh:mm:ss.fff"),
}).ToList();
然后在脚本中:
for (i = 0; i < result.order1.length; i++) {
str += '<tr>';
str += '<td> ' + order1[i].ActualCompletedAt + '</td>';
str += '<tr/>';
}
for(i=0;i
(更新)
我同意PeteGO的观点,结果看起来与空值无关
但要回答您的问题,避免为空,您可以使用:
var order1 = (from a in context.DB_OrderDetails
where a.OrderId == id
and a.ActualCompletedAt != null
select new
{
a.ActualCompletedAt.ToString("yyyy-MM-dd hh:mm:ss.fff"),
}).ToList();
然后在脚本中:
for (i = 0; i < result.order1.length; i++) {
str += '<tr>';
str += '<td> ' + order1[i].ActualCompletedAt + '</td>';
str += '<tr/>';
}
for(i=0;i
什么类型的实际完成的是?这与Null有什么关系?空值在哪里?“878978978979”不是空的…什么数据类型是实际完成的
?这基本上就是我要找的类型是实际完成的
?这与空有什么关系?空值在哪里?“878978978979”不是空的…实际完成的数据类型是什么for@Priya那么我认为第一个做了你想要的。请试一试,让我知道。Thanksa.ActualCompletedAt(“MM/dd/yyyy”)我在控制器中更改了此项,但给出了错误。我所说的空值是指在某些日期,我得到空值,在某些日期,我得到垃圾值,实际完成的时间是DateTime?a、 实际完成时间!=无效的a、 ActualCompletedAt.Value.ToString(“MM/dd/yyyy”):“@Priya然后请尝试第二个版本。在本例中,您有一个可为空的DateTime
。它在Visual studio中给出了这个错误“DateTime?Actualcompletedat.tostring”2013@Priya那么我认为第一个做了你想要的。请试一试,让我知道。Thanksa.ActualCompletedAt(“MM/dd/yyyy”)我在控制器中更改了此项,但给出了错误。我所说的空值是指在某些日期,我得到空值,在某些日期,我得到垃圾值,实际完成的时间是DateTime?a、 实际完成时间!=无效的a、 ActualCompletedAt.Value.ToString(“MM/dd/yyyy”):“@Priya然后请尝试第二个版本。在本例中,您有一个可为空的DateTime
。它在Visual studio 2013中给出了此错误“DateTime?Actualcompletedat.tostring”。我做了此操作,但我正在显示ondblclick事件列表,一旦我在脚本中进行此更改,ondblclick事件将不起作用:/hmm。。。在LINQ的where子句中添加“and”语句不应影响事件。一定还有别的事情发生。请澄清你所说的“不工作”是什么意思。这是否意味着您的列表是空的?如果是这样,那么所有的值都是空的吗?我刚刚意识到代码的第二部分在脚本中,我不知道ToString()的格式在脚本中如何工作。您可以将ToString(“…”)移动到LINQ语句中,那么您的列表将是一个已经格式化的字符串列表。我将以两种格式获取列表中的Date值—(a)Date(840878450)(b)Null。显示这两个值而不是“2015-09-24 14:59:10.837”我做了这件事,但我显示了我的ondblclick事件列表,一旦我在脚本中进行此更改,ondblclick事件将不起作用:/hmmm。。。在LINQ的where子句中添加“and”语句不应影响事件。一定还有别的事情发生。请澄清你所说的“不工作”是什么意思。这是否意味着您的列表是空的?如果是这样,那么所有的值都是空的吗?我刚刚意识到代码的第二部分在脚本中,我不知道ToString()的格式在脚本中如何工作。您可以将ToString(“…”)移动到LINQ语句中,那么您的列表将是一个已经格式化的字符串列表。我将以两种格式获取列表中的Date值—(a)Date(840878450)(b)Null。显示的是这两个值,而不是“2015-09-2414:59:10.837”