[C#] 긴 형식의 datetime을 올바른 표준 시간대로 DateTime으로 변환하는 방법


Answers

ToLocalTime() 메서드를 찾고 있습니다.

long unixDate = 1297380023295;
DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime date= start.AddMilliseconds(unixDate).ToLocalTime();
Question

예 : 12973800232951297380023295 년 2 월 11 일이어야합니다. 오전 9 1297380023295 코드를 지금 사용합니다.

        long dateNumber = num;
        long beginTicks = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks;
        DateTime dateValue = new DateTime(beginTicks + dateNumber * 10000);

        return dateValue;

이 함수의 결과는 오전 1시, GMT입니다. 그걸로 내가 뭘 할 수 있니?




새 DateTime 객체를 만들 때 DateTimeKind를 지정할 수 있으므로 UTC로 지정하고 .ToLocalTime을 사용하여 현지 시간으로 변환 할 수 있습니다.

        long dateNumber = 1297380023295;
        long beginTicks = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Ticks;

        DateTime dt = new DateTime(beginTicks + dateNumber * 10000, DateTimeKind.Utc);
        MessageBox.Show(dt.ToLocalTime().ToString());



Powershell 대본 조각, 다만 FYI

$minDate = New-Object "System.DateTime"
$minDate = $minDate.AddYears(1969)
$minDate.AddMilliseconds(1446616420947)



long a= 634792557112051692;
//a= ticks time
  DateTime dt = new DateTime(a);
   Response.Write(dt.Hour.ToString());


//dt.hour convert time ticks to time hour