C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[49794] [참고]UTC Time으로 변환 해결했습니다.
unitas [kjlee1] 2853 읽음    2007-07-03 17:01
어제 장성호님 관심 가지시고 답변 주신거 감사드립니다.
(어제 질문 올린 초보자 입니다.)

UTC Time으로 변환후 송신, 그 값을 다시 Local Time으로 변환하면 정상표시 됩니다.
혹시 다른 분들 참고가 되실지 몰라 그 부분을 올립니다.

BYTE    by[4];
SYSTEMTIME    stm;
struct tm        tmSet;
time_t        ttm;
DWORD        dwDate;

GetSystemTime(&stm);

tmSet.tm_year    = stm.wYear - 1900;
tmSet.tm_mon    = stm.wMonth - 1;
tmSet.tm_mday    = stm.wDay;
tmSet.tm_wday    = stm.wDayOfWeek;
tmSet.tm_hour    = stm.wHour;
tmSet.tm_min    = stm.wMinute;
tmSet.tm_sec    = stm.wSecond;

ttm = mktime ( &tmSet );
dwDate = (DWORD)ttm;
if ( dwDate == 0xFFFFFFFF )
    dwDate = 0;

by[0]   = HIBYTE(HIWORD(dwDate));
by[1]   = LOBYTE(HIWORD(dwDate));
by[2]   = HIBYTE(LOWORD(dwDate));
by[3]   = LOBYTE(LOWORD(dwDate));

<= 여기 까지가 UTC Time 으로 변환 부분입니다.

by를 송신후 다시 Local Time으로 읽으면

DWORD  dw  = MAKELONG ( MAKEWORD(by[3], by[2]), MAKEWORD(by[1], by[0]) );
struct tm  *systime;
time_t  t;

t = dw;
systime = localtime(&t);

int year = systime->tm_year+1900;
int mon = systime->tm_mon+1;
int day = systime->tm_mday;
int wee = systime->tm_wday;

// 2007년 7월 3일 (2 => 화요일) 정상 처리 됩니다.

+ -

관련 글 리스트
49794 [참고]UTC Time으로 변환 해결했습니다. unitas 2853 2007/07/03
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.