2008-10-13 2 views
1

MSVC++ 6.0 컴파일러의 C 프로그램에서 시스템 날짜를 가져 오려고합니다.MSVC 6.0의 시스템 날짜 받기

하지만 인쇄 (출력은 13 - 10 월 08 일이 내가 설정 한 형식으로 내 시스템에 예입니다)

시스템 ("날짜/T") : 나는 시스템 호출을 사용하고 있습니다 I/O 콘솔에 날짜.

위의 시스템 호출에서 반환 된 날짜를 내 코드에 정의 된 문자열에 문자열 값으로 저장하려면 어떻게해야합니까? 또는

위의 형식 (13-Oct-08 또는 13-10-08)으로 날짜를 가져 오는 데 사용할 수있는 다른 API가 있습니까?

-AD

답변

0

strftimeGetDateFormat을 염두에 이동이 사용하는 API 함수, 두 개의 작업을 수행하는 몇 가지 방법이 있습니다.

예제를 제공하고 싶지만 현재로서는 Win32 컴파일러가 필요하지 않습니다. 위의 문서에있는 예제로 충분합니다.

1
#include <windows.h> 
#include <iostream> 

int main() { 

    SYSTEMTIME systmDateTime = {}; 
    ::GetLocalTime(&systmDateTime); 

    wchar_t wszDate[64] = {}; 
    int const result = ::GetDateFormatW(
    LOCALE_USER_DEFAULT, DATE_SHORTDATE, 
    &systmDateTime, 0, wszDate, _countof(wszDate)); 

    if (result) { 
    std::wcout << wszDate; 
    } 
} 
0

Win32 Time functions; GetLocalTime은 친구가 될 수 있습니다. 또한 표준 C 시간 함수, 시간 및 strftime이 있습니다.

나중에 C 프로그램에서 외부 유틸리티를 호출하고 STDOUT을 캡처하는 것은 거의 항상 잘못된 대답입니다.

0

포인터 주셔서 감사합니다.

나는 이것을 사용하고 내 목적을 역임 :

#include <time.h> 
#include <stdio.h> 
#include <sys/types.h> 
#include <sys/timeb.h> 
#include <string.h> 
    int main() 

    { 

     char tmpbuf[128]; 

     time_t ltime; 

     struct tm *today; 

     _strdate(tmpbuf); 
     printf("\n before formatting date is %s",tmpbuf); 

     time(&ltime); 
     today = localtime(&ltime); 

     strftime(tmpbuf,128,"%d-%m-%y",today); 
     printf("\nafter formatting date is %s\n", tmpbuf); 

    } 

-AD