我正在C#ASP.NET MVC中创建我的第一个Web应用程序,但我遇到的问题是我正在执行转换日期和时间值的函数。
示例我在数据库中有一个名为ACTIVITY_DATE
的属性,名为Datetime
,格式为YYYY-MM-DD hh: mm: ss [.nnn],
。
我需要将其转换为毫秒,这就是它存储在数据库2019 -08-13 16: 10: 36.223
这是我在模型中获得的ACTIVITY_DATE
查询。
到目前为止,我还没有想到仅在控制台上显示它的ACTIVITY_DATE
(以毫秒为单位)就可以发送给视图
TicketDetailsModel.cs
public static IQueryable<RecordsResult> ConvertActivityDateToMiliseconds(dbGoldenTicket db, long fechaMilisegundos)
{
return from tblTicket in db.TK_HD_TICKETS
join tblRecord in db.TK_DT_RECORDS on tblTicket.TK_HD_TICKETS_ID equals tblRecord.TK_HD_TICKETS_ID
join tblEmployee in db.TK_BT_EMPLOYEES on tblRecord.TK_BT_EMPLOYEES_ID equals tblEmployee.TK_BT_EMPLOYEES_ID into tempEmplo
join tblServices in db.TK_CT_SERVICES on tblRecord.TK_CT_SERVICES_ID equals tblServices.TK_CT_SERVICES_ID
join tblStatus in db.TK_CT_STATUS on tblRecord.TK_CT_STATUS_ID equals tblStatus.TK_CT_STATUS_ID
from tblEmployee in tempEmplo.DefaultIfEmpty()
where tblRecord.TK_HD_TICKETS_ID == fechaMilisegundos
select new RecordsResult()
{
RecordDate = tblRecord.ACTIVITY_DATE.ToString(),
};
}
重要的是要弄清楚票证详细信息模型ConvertActivityDateToMiliseconds
返回本地时间
这是我在控制器中将ACTIVITY_DATE
转换为毫秒的功能:
TicketsController.cs
public ActionResult ConvertMiliseconds()
{
using (var db = new dbGoldenTicket())
{
var query = TicketDetailsModel.ConvertActivityDateToMiliseconds(db, fechaMilisegundos);
{
long fechaMilisegundos = (long)(ACTIVITY_DATE - new DateTime(1970, 1, 1)).TotalMilliseconds;
}
return fechaMilisegundos;
}
}
我收到以下错误:
您能告诉我我在代码中做错了什么吗,还是给我正确的方法将ACTIVITY_DATE
转换为毫秒?
答案 0 :(得分:1)
第一个错误,您的方法等待return value
,而不是无效。因此,您必须返回转换后的值。
对于第二个错误,您需要将ACTIVITY_DATE
作为参数传递给ConvertMiliseconds
,因为ACTIVITY_DATE
从未在使用前声明过。另外,在进行任何操作之前,请确保所有日期都具有相同的时区(utc或本地)。
答案 1 :(得分:0)
正如第一条错误消息所述,在ConvertMiliseconds
中,您实际上并没有将结果返回给调用方-您需要使用return fechaMilisegundos;
来返回结果。
还在ConvertMiliseconds
中,您没有将任何参数传递给该函数,因此,如第二个错误所述,您尝试使用的变量不在范围内-您需要添加DateTime
参数,然后从调用方法中传入ACTIVITY_DATE
。