소연의_개발일지

CTime 클래스는 MFC(Microsoft Foundation Class) 라이브러리에서 날짜와 시간을 관리하는 데 사용된다.

CTime 객체를 특정 형식으로 포맷하려면 Format 함수를 사용하면 된다.(문자열로 변환해 줌)

 

주요 형식 코드는 다음과 같다.

%a : 요일 이름의 축약형 (예: Mon, Tue)
%A : 요일 이름 (예: Monday, Tuesday)
%b : 월 이름의 축약형 (예: Jan, Feb)
%B : 월 이름 (예: January, February)
%d : 일 (01 ~ 31)
%m : 월 (01 ~ 12)
%y : 연도의 마지막 두 자리 (00 ~ 99)
%Y : 연도 (예: 2024)
%H : 24시간 형식의 시간 (00 ~ 23)
%I : 12시간 형식의 시간 (01 ~ 12)
%M : 분 (00 ~ 59)
%S : 초 (00 ~ 59)
%p : AM 또는 PM

 

포메팅 예시

 

1. 연-월-일

  CString formatted1 = currentTime.Format(_T("%Y-%m-%d"));           // 연-월-일 (예: 2024-11-12)

 

2. 일/월/연

CString formatted2 = currentTime.Format(_T("%d/%m/%Y"));           // 일/월/연 (예: 12/11/2024)

 

3. 요일, 월 일, 연

 CString formatted3 = currentTime.Format(_T("%A, %B %d, %Y"));      // 요일, 월 일, 연 (예: Tuesday, November 12, 2024)

 

4. 24시간제

 CString formatted4 = currentTime.Format(_T("%H:%M:%S"));           // 24시간제 시:분:초 (예: 15:45:32)

 

5. 12시간제

  CString formatted5 = currentTime.Format(_T("%I:%M:%S %p"));        // 12시간제 시:분:초 AM/PM (예: 03:45:32 PM)

 

기타 예시

#include <afx.h>
#include <iostream>

int main()
{
    // 현재 시간 가져오기
    CTime currentTime = CTime::GetCurrentTime();

    // 다양한 포맷 예제
    CString formatted1 = currentTime.Format(_T("%Y-%m-%d"));           // 연-월-일 (예: 2024-11-12)
    CString formatted2 = currentTime.Format(_T("%d/%m/%Y"));           // 일/월/연 (예: 12/11/2024)
    CString formatted3 = currentTime.Format(_T("%A, %B %d, %Y"));      // 요일, 월 일, 연 (예: Tuesday, November 12, 2024)
    CString formatted4 = currentTime.Format(_T("%H:%M:%S"));           // 24시간제 시:분:초 (예: 15:45:32)
    CString formatted5 = currentTime.Format(_T("%I:%M:%S %p"));        // 12시간제 시:분:초 AM/PM (예: 03:45:32 PM)
    CString formatted6 = currentTime.Format(_T("%m/%d/%Y %H:%M"));     // 월/일/연 시:분 (24시간제) (예: 11/12/2024 15:45)
    CString formatted7 = currentTime.Format(_T("%Y년 %m월 %d일"));      // 한글 형식 연년 월월 일일 (예: 2024년 11월 12일)
    CString formatted8 = currentTime.Format(_T("%B %Y"));              // 월 연도 (예: November 2024)
    CString formatted9 = currentTime.Format(_T("오늘은 %A입니다."));       // 커스텀 텍스트 포함 (예: 오늘은 Tuesday입니다.)
    CString formatted10 = currentTime.Format(_T("%j일째 되는 날"));      // 올해의 몇 번째 날인지 (예: 316일째 되는 날)
    CString formatted11 = currentTime.Format(_T("ISO 8601: %Y-%m-%dT%H:%M:%S")); // ISO 8601 형식 (예: 2024-11-12T15:45:32)
    CString formatted12 = currentTime.Format(_T("Week %U of %Y"));     // 연도의 몇 번째 주인지 (예: Week 46 of 2024)

    // 결과 출력
    std::wcout << L"Formatted 1: " << (LPCTSTR)formatted1 << std::endl;
    std::wcout << L"Formatted 2: " << (LPCTSTR)formatted2 << std::endl;
    std::wcout << L"Formatted 3: " << (LPCTSTR)formatted3 << std::endl;
    std::wcout << L"Formatted 4: " << (LPCTSTR)formatted4 << std::endl;
    std::wcout << L"Formatted 5: " << (LPCTSTR)formatted5 << std::endl;
    std::wcout << L"Formatted 6: " << (LPCTSTR)formatted6 << std::endl;
    std::wcout << L"Formatted 7: " << (LPCTSTR)formatted7 << std::endl;
    std::wcout << L"Formatted 8: " << (LPCTSTR)formatted8 << std::endl;
    std::wcout << L"Formatted 9: " << (LPCTSTR)formatted9 << std::endl;
    std::wcout << L"Formatted 10: " << (LPCTSTR)formatted10 << std::endl;
    std::wcout << L"Formatted 11: " << (LPCTSTR)formatted11 << std::endl;
    std::wcout << L"Formatted 12: " << (LPCTSTR)formatted12 << std::endl;

    return 0;
}
profile

소연의_개발일지

@ssoyxon

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