简体   繁体   English

如何将毫秒转换为 UTC dateTime C#

[英]How to convert millisecond to UTC dateTime C#

I am trying to covert millisecond to UTC dateTime.我正在尝试将毫秒转换为 UTC 日期时间。 I have managed to convert millisecond to local DateTime but not able to convert local dateTime to utc dateTime.我已经设法将毫秒转换为本地日期时间,但无法将本地日期时间转换为 UTC 日期时间。 When I use DateTimeOffset, I am getting one hour behind so I believe this is local DateTime?当我使用 DateTimeOffset 时,我落后了一小时,所以我相信这是本地 DateTime?

I am unable to convert local time to UTC DateTime我无法将本地时间转换为 UTC DateTime

在此处输入图片说明

Test Class测试班

[Fact]
    public void DateTimeCalculation_MustTakeDateTimeParameter_InMilliSecond()
    {
        //Arrange
        long startDateTimeUtc = 1626987600000; //2021-07-22 22:00:00

        //Act
        DateTimeOffset calculatedTimeOffset = DateTimeCalculationHelper.DateTimeCalculation(startDateTimeUtc);
        var utcDateTime = calculatedTimeOffset.UtcDateTime.ToString(); //not working

        var t1 = calculatedTimeOffset.ToUniversalTime(); //not working

        //Assert
        string actual = calculatedTimeOffset.ToString();
        string expected = "22/07/2021 10:00:00 PM +00:00";
        Assert.Equal(expected, actual);
    }

Static class to convert DateTime to millisecond将 DateTime 转换为毫秒的静态类

public static class DateTimeCalculationHelper
{
    public static DateTimeOffset DateTimeCalculation(long milSec)
    {
        DateTimeOffset epochTime = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
        return epochTime.AddMilliseconds(milSec);
    }
}
   var longDate = new DateTime(132713856000000000);//{7/22/0421 12:00:00 AM}
            var dateNow = new DateTime(2021 , 07 ,22);//{7/22/2021 12:00:00 AM}
            var dateNowUTC = dateNow.ToFileTimeUtc();//132713856000000000
             var  utcDate = DateTime.SpecifyKind(dateNow, DateTimeKind.Utc).ToString("U");//"Thursday, July 22, 2021 12:00:00 AM"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM