실제로 저렇다면 컴퓨터의 문제라기 보다는 빌더 라이브러리의 문제가 아닐런지 의심되는군요.
가끔 한번씩만 저런다면,
TDateTime realnow, now1, now2;
now1 = Now();
now2 = Now();
realnow = now1 < now2 ? now2 : now1; // 과거 날짜가 표시되는 것에 착안해서...
이런 코드로 해결 가능할 것 같네요....
그런데 Now()에서 제대로된 값이 안 나온다는 것은 금시초문입니다;;;;
현재 시각 표시 시계 같은거 만들 때, Now 자주 썼는데요 시계가 잘못 나온 것은 본 기억이 없네요.
김상면 님이 쓰신 글 :
: 맞는것 같습니다.
: 저도 비슷한 경험을 했는데...
: 제 컴퓨터가 그렇습니다.
:
: 아직도 원인을 파악하지 못했습니다.
: 그럼
:
: 배정기 님이 쓰신 글 :
: : 맞습니다.
: : 평상 시에는 정상적으로 잘 출력이 됩니다. 하지만 한번씩 이러한 증상이 발생되곤 합니다.
: : 그럼 원인은 OS 자체에서 오류가 발생한다고 생각하면 되는건가요?
: :
: : 정성훈.해미 님이 쓰신 글 :
: : : 테스트해 보니 정상으로 나옵니다.
: : :
: : : TO_DATE('06-25-2009 08:50:14','MM-DD-YYYY HH24:MI:SS')
: : :
: : : 아마 컴퓨터의 시간이 틀린게 아닌가 합니다.
: : :
: : :
: : : 배정기 님이 쓰신 글 :
: : : : sysutil.hpp 파일에 NOW함수를 이렇게 설정 되어 있습니다.
: : : :
: : : : extern PACKAGE System::TDateTime __fastcall Now(void);
: : : :
: : : : 현재 시간을 가지고 와서 오라클 DB에 저장을 하는데 한번씩 '1899123000000'이라는 시간이 저장되고 있습니다.
: : : :
: : : : 왜 이런 값이 출력이 되는지..
: : : :
: : : : 여기에 해결 방법은 없는지 궁금합니다..
: : : :
: : : :
: : : : 참고 하실 코드 입니다.
: : : :
: : : : S=FormatTimeForOracle(Now());
: : : :
: : : :
: : : :
: : : : AnsiString FormatTimeForOracle(TDateTime time)
: : : : {
: : : : AnsiString s,t;
: : : :
: : : : s = FormatDateTime("mm-dd-yyyy hh:nn:ss",time);
: : : : t = "TO_DATE('";
: : : : t += s;
: : : : t += "',";
: : : : t += "'MM-DD-YYYY HH24:MI:SS')";
: : : : return t;
: : : : } //FormatTimeForOracle
: : : :
: : : : 포맷으로 변경하면 12-30-1899 00:00:00값으로 출력이 됩니다.