Ctime으로는 밀리세컨을 가져올 수 없어 시스템 타임으로 구현했다.
SYSTEMTIME이란?
SYSTEMTIME은 Windows API에서 날짜와 시간 정보를 나타내는 구조체이다.이를 통해 연도, 월, 일, 시, 분, 초와 같은 세부 날짜 및 시간 데이터를 저장할 수 있다.
SYSTEMTIME 구조체
typedef struct _SYSTEMTIME {
WORD wYear; // 연도 (예: 2024)
WORD wMonth; // 월 (1-12)
WORD wDayOfWeek; // 요일 (0-6, 0 = 일요일)
WORD wDay; // 일 (1-31)
WORD wHour; // 시 (0-23)
WORD wMinute; // 분 (0-59)
WORD wSecond; // 초 (0-59)
WORD wMilliseconds; // 밀리초 (0-999)
} SYSTEMTIME;
SYSTEMTIME 사용 방법
- 현재 시스템 시간 가져오기: GetLocalTime 또는 GetSystemTime 함수 사용
- 시스템 시간 설정: SetLocalTime 함수 사용
예) 현재 시스템 시간 가져오는 함수
#include <windows.h>
#include <iostream>
int main() {
SYSTEMTIME st;
// 현재 로컬 시간 가져오기
GetLocalTime(&st);
// 시스템 시간 출력
std::cout << "현재 시간: "
<< st.wYear << "년 "
<< st.wMonth << "월 "
<< st.wDay << "일 "
<< st.wHour << "시 "
<< st.wMinute << "분 "
<< st.wSecond << "초 "
<< st.wMilliseconds << "밀리초"
<< std::endl;
return 0;
}
출력 예시: 현재 시간: 2024년 12월 5일 17시 23분 45초 123밀리초
MFC 환경에서 사용해서 Cstring에 포메팅 하고 싶다면
SYSTEMTIME sysTime;
GetLocalTime(&sysTime);
CString writeTime;
writeTime.Format(L"%04d-%02d-%02d %02d:%02d:%02d.%03d",
sysTime.wYear, sysTime.wMonth, sysTime.wDay,
sysTime.wHour, sysTime.wMinute, sysTime.wSecond,
sysTime.wMilliseconds);
이런 식으로 사용하면 된다.
'개발공부 > C++' 카테고리의 다른 글
[C++ MFC] 문자열 _T("")와 L"" (0) | 2024.12.26 |
---|---|
[C++] 폴더 없을 때 폴더 생성 (0) | 2024.12.17 |
[C++ MFC] 출력 창에서 디버깅 내용 보기 (0) | 2024.12.04 |
[C++ MFC] CTime 클래스 시간 형식 예시 (0) | 2024.11.12 |
[C++ MFC] 다이얼로그 창 항상 앞으로 띄우기, 주기적으로 창 앞으로 띄우기 (0) | 2024.11.05 |