GetSystemTimePreciseAsFileTime
로컬 시간 독립성: 로컬 시간대나 일광 절약 시간제(DST)의 영향을 받지 않는 절대적인 UTC 시간 반환.
고정밀: 일반적인 GetSystemTime이 10~15ms 단위로 업데이트되는 것과 달리, 이 함수는 하드웨어 카운터(QPC)와 연동되어 0.1μs(=100나노초) 의 정밀도.
단위: 1601년 1월 1일 UTC 0시부터의 경과 시간을 100나노초 단위로 반환. 마이크로초 단위로 받으려면 나누기 10.
지원운영체제 : windows 8 이후 Windows Server 2012 이후
C++ 코드예
#include <windows.h>
#include <iostream>
long long GetUtcNowMicroseconds() {
FILETIME ft;
// 1. 고정밀 UTC 시스템 시간 가져오기 (100나노초 단위). thread safe
GetSystemTimePreciseAsFileTime(&ft);
// 2. 64비트 정수로 변환
ULARGE_INTEGER uli;
uli.LowPart = ft.dwLowDateTime;
uli.HighPart = ft.dwHighDateTime;
// 3. 100나노초 단위를 마이크로초로 변환 (10으로 나눔)
return uli.QuadPart / 10;
}
int main() {
std::cout << "현재 UTC0 마이크로초: " << GetUtcNowMicroseconds() << std::endl;
return 0;
}
C++ 실전 함수로 정리한것.
#include <windows.h>
#include <stdint.h>
namespace Cy::Time {
inline static int64_t GetUTCMicroSec() // Windows 8 / Server 2012 이상 필수
{
FILETIME ft;
GetSystemTimePreciseAsFileTime(&ft);// 고정밀 UTC 시스템 시각 가져오기
// 1. FILETIME의 주소를 uint64_t 포인터로 캐스팅하여 한 번에 읽음.
// FILETIME은 메모리상에 Low(4byte), High(4byte) 순으로 있어 64비트 정수와 호환됨
uint64_t rawTicks = *reinterpret_cast<const uint64_t*>(&ft);
return static_cast<int64_t>(rawTicks / 10);
}
}//namespace Cy::Time
MT5 . mql5 코드예
- mt5 에서도 사용 가능.
// 1. Windows API 임포트
#import "kernel32.dll"
void GetSystemTimePreciseAsFileTime(long &filetime);
#import
// 2. C++의 GetUTCMicroSec()과 동일한 기능을 하는 함수
long GetUTCMicroSec()
{
long ft;
GetSystemTimePreciseAsFileTime(ft); // 100ns 단위 64비트 정수 획득
return ft / 10; // 마이크로초(μs) 단위로 변환
}
상위정리
Visual Studio , Visual C++ 활용 정리.
Visual Studio C++ 활용 Visual StudioVisual C++ / C#1.설치, 설정 주제 비고. Visual Studio 2010 설치. Visual Studio 2013 (Community)무료 설치. Visaul Studio 2015 (Community)무료 설치.- Visual Studio 2015 버전은 이전 버전대비 급
igotit.tistory.com
연관
UTC. 협정세계시. Coordinated Universal Time. Epoch. GMT
UTC 협정세계시. Coordinated Universal Time- 국제표준 시각 표현기준. - 약어표현 : UTC- 가장 혼선없이 사용가능한 일관성 있는 시각표현수단 - 금융데이터 처리 코드나 데이터 베이스 기록시 섬
igotit.tistory.com
첫 등록 : 2026.01.22
최종 수정 :
단축 주소 : https://igotit.tistory.com/6426
'VisualStudio.C++.C# > 코딩팁,함수활용,단편' 카테고리의 다른 글
| C . 실수 일정단위 분할하여 구간 인덱스만들기 . (0) | 2025.11.27 |
|---|---|
| 유니티 에서 C++ 로 제작된 DLL 활용 방법 . native plug-ins (0) | 2024.07.10 |
| MFC . CView . CDC TextOutW 문자열 출력. (3) | 2023.12.03 |
| CEvent . Lock() . SetEvent() . ResetEvent() (0) | 2022.04.09 |
| MFC. CTreeCtrl. Tree Control . 트리 컨트롤 사용법. (1) | 2022.04.04 |
댓글