1

在 SQL Server 中:

DECLARE @UTC BIGINT
SET @UTC = 1563527339733 
SELECT DATEADD(MILLISECOND, @UTC % 1000, DATEADD(SECOND, @UTC / 1000, '19700101'))
SELECT CONVERT(VARCHAR(8),cast('2019-07-19 09:08:59.733' as datetime), 108) 'hh:mi:ss'

结果:09:08:59

但在 C# 或 ASP.Net MVC 中:

 DateTime dtCheck = DateTimeHelper.ConvertMilisecondToDateTimeUTC(1563527339733);
 string test = dtCheck.ToString("HH:mm:ss");

C# 测试结果:09:09:00

函数转换

 public static DateTime ConvertMilisecondToDateTimeUTC(long milisecond)
    {
        var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Math.Round(milisecond / 1000d));
        return dt;
    }

怎么改成一样的?

4

1 回答 1

1

删除函数Math.Round()中的ConvertMilisecondToDateTimeUTC(),将返回您的预期结果。

public static DateTime ConvertMilisecondToDateTimeUTC(long milisecond)
{
    var dt = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(milisecond / 1000d);
    return dt;
}

请找到工作演示

于 2019-07-19T10:48:46.883 回答