c#에서 이중 값을 DateTime으로 변환하는 방법은 무엇입니까?
40880.051388이라는 값을 가지고 있으며 엑셀을 열고 셀에 붙여넣고 다음과 같은 커스텀 포맷을 적용하면 더블로 저장하고 있습니다"m/d/yyyy h:mm"
그 감방으로, 나는."12/3/2011 1:14"
C#에서 이 구문 분석/변환을 수행하려면 어떻게 해야 합니까?값이 특정 체크포인트에서 밀리초 단위인지, 예를 들어 에포크 시간인지, 값이 특정 준비된 형식인지는 모르겠지만 excel은 어떻게 이 특정 값을 생성합니까?C#로 할 수 있습니까?
저는 당신과 함께 일하려고 노력했습니다.TimeSpan
,DateTime
Visual Studio에 있는 것들과 같은 것들이지만 아무 것도 얻지 못하고 있습니다.
이전 OLE 자동화 날짜를 사용하고 있는 것 같습니다.사용하다
DateTime.FromOADate(myDouble)
다음과 같은 것을 시도해 보세요:-
double d = 40880.051388 ;
DateTime dt = DateTime.FromOADate(d);
사용해 보십시오.var dateTime = DateTime.FromOADate(40880.051388);
.
문자열 형식을 지정해야 하는 경우dateTime.ToString("M/d/yyyy H:mm", CultureInfo.InvariantCulture)
그것 때문에그러면 24시간 줄 수 있습니다(변경).H
로.h
12시간 시스템의 경우).
에서 제공하는 것보다 더 높은 정밀도(요인 1000 이상)가 필요한 경우FromOADate
다른 스레드에서 내 대답을 봅니다.
값은 1899년 12월 30일부터 일 단위로 오프셋됩니다.원하는 기능:
new DateTime(1899, 12, 30).AddDays(40880.051388)
다음과 같은 간단한 코드가 작동합니다.
DateTime.FromOADate(myDouble)
그러나 성능이 중요한 경우에는 충분히 빠르게 실행되지 않을 수 있습니다.OLE Automation Date 형식의 날짜 범위는 1899년 12월 30일에 시작하는 반면 DateTime은 그레고리력으로 1,0001년 1월에 시작하기 때문에 이 작업은 프로세서 집약적입니다.
OADate에서 myDouble을 유일한 인수로 사용하여 DoubleDateToTicks 함수를 호출합니다.이 값은 눈금 수를 반환하며, 이 값은 지정되지 않은 DateTimeKind로 새 DateTime을 만드는 데 사용됩니다.
이 작업의 대부분은 mscorlib의 DoubleDateToTicks 함수에 의해 수행됩니다.여기에는 인수를 던지기 위한 코드가 포함됩니다.이중 값이 NaN인 경우는 예외이며, 정확한 요구 사항에 따라 성능을 최적화할 수 있는 여러 가지 방법이 있습니다.
언급URL : https://stackoverflow.com/questions/13919641/how-to-convert-a-double-value-to-a-datetime-in-c
'sourcecode' 카테고리의 다른 글
단일 플라스크 프로세스가 수신하는 동시 요청 수는 얼마나 됩니까? (0) | 2023.06.17 |
---|---|
Firestore - 특정 필드 변경을 들으시겠습니까? (0) | 2023.06.17 |
비밀번호 없이 sudo를 사용하여 mariaDB에 연결 (0) | 2023.06.17 |
MS Excel은 결과 값 대신 셀에 수식을 표시합니다. (0) | 2023.06.17 |
C와 C++의 표준 헤더 파일 목록 (0) | 2023.06.17 |