如何在c# mvc5中转换字符串中的日期时间,这样它就不会得到空日期时间值
本文关键字:日期 时间 转换 mvc5 字符串 | 更新日期: 2023-09-27 18:14:22
我正在创建一个项目,在其中我想从我的数据库中存储一个列表中的日期。我使用MVC5和c#。在相应的控制器中,我将来自数据库的值传递为:
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/>';
}
但在列表中,我得到的值为日期/878978978979等。在数据库中,它就像"2015-09-24 14:59:10.837",即正确的日期和时间。我需要在我的Linq查询做什么修改,使日期不为空?
您应该调用ToString
并正确格式化:
ActualCompletedAt = a.ActualCompletedAt("MM/dd/yyyy")
我假设ActualCompletedAt
是一个DateTime
对象。如果这是一个可空的DateTime
对象,那么您必须首先进行检查。
ActualCompletedAt = a.ActualCompletedAt != null ? a.ActualCompletedAt.Value("MM/dd/yyyy") : ""
json序列化器就是这样处理日期的。我确信有一种方法来控制它是如何完成的,但一个简单的修复是返回日期作为一个字符串在控制器中,通过附加。tostring()后的ActualCompletedAt在控制器。
(UPDATED)
我同意PeteGO的观点,这个结果看起来和空值没有任何关系。
但是要回答你的问题,为了避免null,你可以使用:
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/>';
}