sourcecode

c#에서 이중 값을 DateTime으로 변환하는 방법은 무엇입니까?

codebag 2023. 6. 17. 09:05
반응형

c#에서 이중 값을 DateTime으로 변환하는 방법은 무엇입니까?

40880.051388이라는 값을 가지고 있으며 엑셀을 열고 셀에 붙여넣고 다음과 같은 커스텀 포맷을 적용하면 더블로 저장하고 있습니다"m/d/yyyy h:mm"그 감방으로, 나는."12/3/2011 1:14"

C#에서 이 구문 분석/변환을 수행하려면 어떻게 해야 합니까?값이 특정 체크포인트에서 밀리초 단위인지, 예를 들어 에포크 시간인지, 값이 특정 준비된 형식인지는 모르겠지만 excel은 어떻게 이 특정 값을 생성합니까?C#로 할 수 있습니까?

저는 당신과 함께 일하려고 노력했습니다.TimeSpan,DateTimeVisual 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로.h12시간 시스템의 경우).

에서 제공하는 것보다 더 높은 정밀도(요인 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

반응형