2010-06-26 3 views

답변

7

, 그것은 오버 플로우 것이다. 그러나 오래있을 수 있습니다.

DateTime dateTime = new DateTime(2010, 6, 26, 14, 44, 07); 
long time = long.Parse(dateTime.ToString("yyyyMMddHHmmss")); 

그러나, 단순히 문자열로 표현하는 것이 더 직관적 인 것,하지만 난 당신이 정보로 할 의도 모르겠어요.

편집 : 당신이 질문을 업데이트 한 이후

는 대답은 간단하다.

string time = dateTime.ToString("yyyyMMddHHmmss"); 
+0

덕분에 자신의 샘플에서 프롬프트 응답 : – 001

0

32 비트 정수는 매우 정확한 해상도로 DateTime 값을 유지하기에 충분하지 않습니다. Ticks 속성은 long (Int64)입니다. 당신이 틱 수준의 정밀도를 필요로하지 않는 경우, 당신은 시대 이후 초 같은 것을 얻을 수 :

TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1)); 
int dateAsInteger = (int)t.TotalSeconds; 

그것은 일반적으로 당신이 연산 할 수없는 번호를 저장하는 숫자 데이터 유형을 사용하는 것은 좋은 생각 에. 예 : 예제의 숫자에는 숫자 의미 또는 값이 없으며이를 더하거나 뺄 때는 무의미합니다. 그러나 특정 날짜 이후의 초 수는 이고 숫자 데이터 형식으로는입니다.

+0

, 그것은 그가처럼 보이는 단지 년, 월, 일 등으로 시작하는 숫자로 표시되는 실제 날짜를 원합니다. –

+0

그는 다시 초를 묻지 않았습니다. 다시 질문을 읽어보십시오. –

+0

@Srin : 원래 질문의 예는 초를 표시합니다. –

0

참고 : 질문이 "정수 값"이 아닌 "문자열 값"으로 변경되기 전에 게시되었습니다.

은 기본적으로 당신이 그것을 추가 한 후 각 부분에 필요한 장소의 숫자로 번호를 따라 이동하고 싶지 :

var x = new DateTime(2010,06,26,14,47,07); 

long i = x.Year; 
i = i * 100 + x.Month; 
i = i * 100 + x.Day; 
i = i * 100 + x.Hour; 
i = i * 100 + x.Minute; 
i = i * 100 + x.Second; 

Console.WriteLine(i); // 20100626144707 
관련 문제