programing

ASP.NET: 1970년 1월 1일 이후 밀리초 가져오기

starjava 2023. 6. 26. 20:45
반응형

ASP.NET: 1970년 1월 1일 이후 밀리초 가져오기

저는 ASP.NET, VB.NET Date를 가지고 있으며 1970년 1월 1일 이후의 밀리초 수를 구하려고 합니다.MSDN에서 방법을 찾아봤지만 아무것도 찾을 수 없었습니다.이거 어떻게 하는지 아는 사람?

.NET 4.6부터 시작하는 방법ToUnixTimeMilliseconds보다 정확한 솔루션을 제공합니다.

부터DateTimeOffset:

DateTimeOffset.Now.ToUnixTimeMilliseconds()

부터DateTime:

new DateTimeOffset(dateTime).ToUnixTimeMilliseconds()

출처: https://learn.microsoft.com/en-us/dotnet/api/system.datetimeoffset.tounixtimemilliseconds?view=netframework-4.6#System_DateTimeOffset_ToUnixTimeMilliseconds

두 개를 뺄 수 있습니다.DateTime인스턴스 및 getTimeSpan그리고.TotalMilliseconds총 밀리초를 제공합니다.아래 샘플.

    DateTime dt1970 = new DateTime(1970, 1, 1);
    DateTime current = DateTime.Now;//DateTime.UtcNow for unix timestamp
    TimeSpan span = current - dt1970;
    Console.WriteLine(span.TotalMilliseconds.ToString());

정기선 한 척

//DateTime.MinValue is 01/01/01 00:00 so add 1969 years. to get 1/1/1970
DateTime.Now.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;

또는 Ticks 속성을 사용하여 임시 객체를 생성하지 않을 수 있습니다.

long epochTime = (DateTime.UtcNow.Ticks - 621355968000000000) / 10000;

하지만, 이것이 완전히는 아닙니다.

이유:

DateTime d = new DateTime(1970, 01, 01);
var temp = d.Ticks; // == 621355968000000000

이렇게 하면 UNIX Epoch가 밀리초 단위로 제공됩니다. (현지 시간 대신 UTC 시간을 존중합니다.)

Split(DateTime.UtcNow.Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds(), ".", 2)(0)

언급URL : https://stackoverflow.com/questions/5680375/asp-net-get-milliseconds-since-1-1-1970

반응형