정확히 .Net이이 값을 사용하고 있습니까? 이 값은 GetSystemTimeAsFileTime입니까? 이 값은 어떻게 계산됩니까? 어떻게 든 QPC 값을 기반으로합니까?DateTime.UtcNow 값은 어떻게 계산됩니까?
답변
UtcNow
아래와 같이 정의된다 (간략화를 위해 박리 특성)
public static DateTime UtcNow
{
get
{
return new DateTime((ulong) ((GetSystemTimeAsFileTime() + 0x701ce1722770000L) | 0x4000000000000000L));
}
}
GetSystemTimeAsFileTime
내부 호로서 정의된다. 반사판 더 이상 도움이되지 수
[MethodImpl(MethodImplOptions.InternalCall), SecurityCritical]
internal static extern long GetSystemTimeAsFileTime();
는 sscli 파고 있습니다.
GetSystemTimeAsFileTime
지도에 SystemNative::__GetSystemTimeAsFileTime
(ecall.cpp)
FCFuncStart(gDateTimeFuncs)
FCFuncElement("GetSystemTimeAsFileTime", SystemNative::__GetSystemTimeAsFileTime)
FCFuncEnd()
그리고 마지막으로 SystemNative::__GetSystemTimeAsFileTime
는
FCIMPL0(INT64, SystemNative::__GetSystemTimeAsFileTime)
{
WRAPPER_CONTRACT;
STATIC_CONTRACT_SO_TOLERANT;
INT64 timestamp;
::GetSystemTimeAsFileTime((FILETIME*)×tamp);
#if BIGENDIAN
timestamp = (INT64)(((UINT64)timestamp >> 32) | ((UINT64)timestamp << 32));
#endif
return timestamp;
}
FCIMPLEND;
그래서, UtcNow
는 래퍼 주위 GetSystemTimeAsFileTime 기능은 단순히 (comsystem.cpp) 아래로 구현됩니다 케이스는 BigEndian으로 처리합니다.
마이크로 소프트는 오픈 소스 운영 체제 : Whow
DateTime.UtcNow
은 현재 날짜/시간에서 호스트 운영 체제 시간대의 오프셋을 뺀 값으로 계산됩니다. ILSpy에서 찾고
그리고 네는, 내부적으로는 GetSystemTimeAsFileTime를 호출 :
[SecurityCritical]
[MethodImpl(MethodImplOptions.InternalCall)]
internal static extern long GetSystemTimeAsFileTime();
이 수동으로 TimeZoneInfo.Local를 사용하여 현재 시간대를 당겨하려면이 당신에게 당신이 다음 현재 날짜에서 뺄 수있는 BaseUtcOffset을 제공합니다/시간 (예 :
)이러한 값은 레지스트리 및 그 이상의 운영 체제 설정으로 저장됩니다. Windows를 설치할 때 당신이 할 원하는 시간대를 선택 기억 당신이 용감 경우 여기에 일부 정보 찾을 수 있습니다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones
MSDN에서 시간 영역 등의 우수한 기사가있다을 블로그 -. http://blogs.msdn.com/b/bclteam/archive/2007/06/07/exploring-windows-time-zones-with-system-timezoneinfo-josh-free.aspx
을 출시까지 우리는 더 이상 갈 수 없습니다. 사람들은 소스 코드 대신 IL을 검사합니다. http://referencesource.microsoft.com/#mscorlib/system/datetime.cs,df6b1eba7461813b
UtcNow 라인 959
디스어셈블러, 반사 또는 다른 것을 사용할 필요에서 시작에서 날짜 시간 클래스의
소스입니다 - 성경에 기록 된대로 코드를 볼 수 있습니다.
그러나 관리되는 코드에는 아무 것도 구현되어 있지 않습니다. 따라서 출처를 확인해도 많은 통찰력을 얻을 수는 없습니다. –
- 1. 카프카 오프셋 값은 어떻게 계산됩니까?
- 2. Sitecore 다 변수 테스트 : 값은 어떻게 계산됩니까?
- 3. 계산 기간없이 DateTime.UtcNow
- 4. 테이블 너비, 어떻게 계산됩니까?
- 5. UIScrollView - showsHorizontalScrollIndicator는 어떻게 계산됩니까?
- 6. 참조 횟수는 어떻게 계산됩니까?
- 7. 푸셔 연결은 어떻게 계산됩니까?
- 8. Makefile 변수는 어떻게 계산됩니까?
- 9. ASP.NET에서 'name'속성은 어떻게 계산됩니까?
- 10. 호모 그래피는 어떻게 계산됩니까?
- 11. 코멘트 페이지는 어떻게 계산됩니까?
- 12. 첨도에서 첨도가 어떻게 계산됩니까?
- 13. MKMapCamera의 고도는 어떻게 계산됩니까?
- 14. 무료 메모리 사용량은 어떻게 계산됩니까?
- 15. CSS의 백분율 : 내부적으로 어떻게 계산됩니까?
- 16. md5Hash는 com.google.appengine.api.blobstore.BlobInfo에 대해 어떻게 계산됩니까
- 17. Blackberry 세계 다운로드는 어떻게 계산됩니까?
- 18. Android : 픽셀 밀도가 어떻게 계산됩니까?
- 19. CouchDB 문서 ID는 어떻게 계산됩니까?
- 20. 이 무한한 목록은 어떻게 계산됩니까?
- 21. cv_values_는 sklearn.linear :: RidgeCV에서 어떻게 계산됩니까?
- 22. 가상 메모리는 Spark에서 어떻게 계산됩니까?
- 23. Google지도 API 제한은 어떻게 계산됩니까?
- 24. PostgreSQL보기의 행 수는 어떻게 계산됩니까?
- 25. GIZA ++ - 정렬 점수는 어떻게 계산됩니까?
- 26. * * = 연산자는 ActionScript의 단일 라인 알고리즘에서 어떻게 계산됩니까?
- 27. Haar-Feature의 임계 값은 Viola-Jones의 유일한 방법으로 계산됩니까?
- 28. PHP를 사용하여 값을 게시하는 방법 값은 javascript에 의해 계산됩니까?
- 29. 프로세스 또는 스레드의 DateTime.UtcNow 값을 변경하는 방법?
- 30. firebase 분석의 "first_open"이벤트는 어떻게 계산됩니까?
내 질문은 가치가 나오는 곳이 중요한 이유입니다. –
['GetSystemTimeAsFileTime'] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms724397%28v=vs.85%29.aspx)에 대한 호출입니다. [출처] (http://referencesource.microsoft.com/# mscorlib/system/datetime.cs, b0d5e4c9a8d4ddac) – dcastro
'GetSystemTimeAsFileTime'은 '내부'입니다. 그래서 .. –