2013-03-25 5 views
1

값이 D이고 날짜 시간 유형인지 확인하려면 다음과 같은 차이점이 있습니까?Convert.ToDateTime (D)를 (DateTime)에 비교 D

  1. DateTime dtm = Convert.ToDateTime(D)
  2. DateTime dtm = (DateTime)D

1 2 반면 변환 캐스트이다? (I 2는 가벼운 작업입니다 특정 측면에서 가정?)
가 언제 1보다는 2 사용해야합니까?


편집

(질문의 컨텍스트)가DataTable의 셀 내지

D. 내가 뭘하는지 (datatable.columnname 통해) 날짜 및 xl 이동하기 전에 결과에 ToOADate 함수를 적용하는 모든 셀을 찾는 것입니다. drDataRowView의 경우, 나는 다음과 같은 대안 중 하나를 가지고 그래서 :

//Convert 
DateTime dtm; 
dtm = Convert.ToDateTime(dr[i - 1]); 
xlWorkSheet.Cells[rowCount, i].value = dtm.ToOADate(); 

//Cast 
DateTime dtm; 
dtm = (DateTime)dr[i - 1]; 
xlWorkSheet.Cells[rowCount, i].value = dtm.ToOADate(); 
+3

'D'는 어떤 문자입니까? – Oded

+0

@Oded 좋은 질문 - DataTable의 셀입니다. - SQL 서버에서 D가 추출되는 필드는 DateTime입니다. OP – whytheq

+0

에이 내용을 추가하겠습니다. @Oded 질문 문맥에 대한 간단한 설명을 추가했습니다. – whytheq

답변

6

Convert.ToDateTimeDateTime에 다른 형식을 변환하는 몇 가지 오버로드가 있습니다. DateTime이 아닌 인스턴스를 DateTime 인스턴스로 변환 할 때 사용해야합니다. DateTime.ParseDateTime.TryParse (문자열 표현을 구문 분석하려는 경우)을 사용할 수도 있습니다.

(DateTime)D 시도는 직접 DateTime에 인스턴스를 캐스팅합니다. 인스턴스가 아직 호출 전에 DateTime이 아닌 경우 예외가 발생합니다. 당신이 실제로 다른 유형 사이의 변환을 할 수있는 "변환"클래스를 사용하여

+0

'dr [i - 1]'이 이미 데이터 테이블의 datetime이기 때문에 +1처럼 들립니다.이 정보를 주셔서 감사합니다. – whytheq

1

. 예 : String을 DateTime으로 변환 할 수 있습니다. 캐스팅은 같은 유형에서만 작동합니다. 따라서 문자열을 Int32로 캐스트 할 수 없으므로 캐스트 예외가 발생합니다.

예 : D의 내용이 항상 DateTime 유형 인 경우 캐스트가 매우 빠르기 때문에 캐스팅을 선호해야합니다. 당신은 D (이 개체 유형의 어쩌면 때문에)이 그냥 일반 주조보다 더 우아한이 메소드는 String가 또한 날짜 시간을 설정할 수 있기 때문에 당신은 (그것을 변환 선호 할 수 있습니다 안에 어떤 방식을 모르는 경우 Date String) 또는 Int32 (틱)로 표시됩니다.

+0

+1 – whytheq

관련 문제