2013-02-14 8 views
1

나는 currMonth라는 TDateTime 변수가 있습니다. currMonth의 값은 "6/30/2000 11:59:59 PM"입니다. dtBegin이라는 TDBGrid 필드의 기본값으로 currMonth를 삽입해야합니다.TDateTime 값이 잘못된 이유

는이 코드 시도 :

dtBegin->AsDateTime = currMonth; 

을 그리고 컴파일러는 프로젝트를 컴파일 성공,하지만 난 그것을 디버깅 할 때, 나는 dtBegin 값이 "2000년 6월 30일 11시 59 분 59 초 PM"아니다 얻을 그러나 {36738.9999999884}.

누구나이 TDateTime 객체에 무슨 문제가 있는지 알 수 있습니까?

미리 감사드립니다.

답변

2

여기에 게시하는 동시에 your same question that you posted on the Embarcadero forum에 대한 여러 답글이 있습니다.

간단히 말해서, 전혀 잘못된 것이 없습니다. TDateTime은 내부적으로 double으로 구현됩니다. 디버그 관리자는 단지 double 값을 그대로 표시하며 예상 한 날짜/시간 문자열을 형식화하지 않습니다. 이는 정상적인 동작이므로 TDateTime 코드 자체에서 정상적으로 작동합니다. 이전 버전의 C++ Builder를 사용하고 있으므로 최신 버전의 C++ Builder에서 TDateTime 값을 더 좋게 표시하는 데 사용하는 TDateTime 디버그 비주얼 라이저가 필요하지 않습니다. 디버거 내부 포맷 방식으로 TDateTime 값을 참조해야하는 경우

, 당신은 RTL의 DateTimeToStr() 함수를 호출하는 감시 목록의 항목, 또는 TDateTime::FormatString() 방법을 정의 할 수 있고, 당신에게 결과를 표시합니다.

+0

고마워요. 레미. 나는 지금 이해하고있다. – Andromeda