2016-10-26 3 views
1
내가 무서워 엑셀 날짜 형식으로 C#을 날짜 개체를 변환 할 필요가

으로 C#을 날짜 개체를 변환 : 1 년 1 월 1900 년 이후 일 https://datapub.cdlib.org/2014/04/10/abandon-all-hope-ye-who-enter-dates-in-excel/엑셀 날짜 형식

즉 수는 부동 소수점 숫자로 표시됩니다.

DIY 코드를 사용하지 않고이를 수행 할 수있는 방법이 있습니까? 나는 주위에 내가

+0

yyyy-MM-dd로 CSV에 넣으려고 했습니까? 그것은 효과가있을 것입니다. –

+0

CSV는 Excel과 다릅니다. Excel 날짜가 잘 정의되어 있으므로 날짜가 실제로 저장되는 방법을 알고 있으면 두려워 할 형식이 없습니다. 이전에는 일반적인 지식이었습니다. –

+0

@PanagiotisKanavos 귀하의 빠른 답변에 감사드립니다. 대부분의 사용자는 CSV를 클릭하고 Excel을 사용하여 파일을 엽니 다. 따라서 타임 스탬프는 "OLE 자동화 데이터"(일명 날짜를 나타내는 Excel 부동 소수점 숫자) 형식이어야합니다. CSV는 텍스트 일 ​​뿐이며 열과 함께 "열 유형"이 표시되지 않습니다. –

답변

4

엑셀 날짜는 OLE 자동화 날짜 형식을 사용하는 좋은 블로그 게시물을 제외하고 유용한 아무것도 찾지 못했습니다 인터넷 검색을 엑셀 친화적 인 CSV 수출

을 만들기 위해 필요. 당신은 DateTime.ToOADate

OA 날짜가 누구의 정수 부분 1899년 12월 (30)로부터의 오프셋 (offset) 날짜입니다 이중 있습니다로를 검색 할 수 있습니다 (즉, 이전 날짜는 음수)과 소수 부분이 유형이었다 (24)

로 나눈 시간 COM/VB6 일 동안 많이 사용되었습니다. 요즘 Excel과 날짜 내용이 포함 된 날짜 또는 변형이 필요한 COM API를 호출해야하는 경우에 필요합니다.

1

다음과 같은 방법으로 변환 할 수 있습니다.

return new DateTime(1899, 12, 31).AddDays(SerialDate);