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;
}
'개발공부 > C++' 카테고리의 다른 글
[C++ MFC] 다이얼로그 창 항상 앞으로 띄우기, 주기적으로 창 앞으로 띄우기 (0) | 2024.11.05 |
---|---|
[Visual Studio c++] region 및 endregion / pragma 코드블럭 지정하기 (0) | 2024.09.27 |
[C++ MFC] DeleteFile로 파일 삭제, Deletefile로 삭제 안 될때 오류코드 (0) | 2024.09.10 |
[C++ MFC] 창 최소화/최대화/작업표시줄로 내리기 (0) | 2024.08.05 |
[C++] csv 파일 쓰기 (0) | 2024.07.22 |