如何解决有关将日期时间转换为毫秒的错误

时间:2019-08-16 21:31:20

标签: asp.net asp.net-mvc datetime

我正在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;
        }
    }

我收到以下错误:

enter image description here

Error 2

您能告诉我我在代码中做错了什么吗,还是给我正确的方法将ACTIVITY_DATE转换为毫秒?

2 个答案:

答案 0 :(得分:1)

第一个错误,您的方法等待return value,而不是无效。因此,您必须返回转换后的值。

对于第二个错误,您需要将ACTIVITY_DATE作为参数传递给ConvertMiliseconds,因为ACTIVITY_DATE从未在使用前声明过。另外,在进行任何操作之前,请确保所有日期都具有相同的时区(utc或本地)。

答案 1 :(得分:0)

正如第一条错误消息所述,在ConvertMiliseconds中,您实际上并没有将结果返回给调用方-您需要使用return fechaMilisegundos;来返回结果。

还在ConvertMiliseconds中,您没有将任何参数传递给该函数,因此,如第二个错误所述,您尝试使用的变量不在范围内-您需要添加DateTime参数,然后从调用方法中传入ACTIVITY_DATE