소연의_개발일지
article thumbnail

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);

이런 식으로 사용하면 된다.

profile

소연의_개발일지

@ssoyxon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!