JavaScript 날짜 개체를 눈금으로 변환하는 방법
JavaScript 날짜 개체를 눈금으로 어떻게 변환해야합니까? 데이터 동기화 후 틱을 사용하여 C # 애플리케이션의 정확한 날짜를 얻고 싶습니다.
DateTime
객체를 범용 틱으로 변환 하려면 다음 코드 스 니펫을 사용하십시오.
var ticks = ((yourDateObject.getTime() * 10000) + 621355968000000000);
밀리 초에는 10000 틱이 있습니다. 그리고 0001 년 1 월 1 일부터 1970 년 1 월 1 일 까지 621.355.968.000.000.000 틱 입니다.
JavaScript Date
유형의 기원은 1970 년 1 월 1 일 자정 인 Unix 시대입니다.
.NET DateTime
유형의 출처는 0001 년 1 월 1 일 자정입니다.
Date
다음과 같이 JavaScript 객체를 .NET 틱으로 변환 할 수 있습니다 .
var yourDate = new Date(); // for example
// the number of .net ticks at the unix epoch
var epochTicks = 621355968000000000;
// there are 10000 .net ticks per millisecond
var ticksPerMillisecond = 10000;
// calculate the total number of .net ticks for your date
var yourTicks = epochTicks + (yourDate.getTime() * ticksPerMillisecond);
"틱"이 "에포크 이후 밀리 초"와 같은 것을 의미하는 경우 ".getTime ()"을 호출 할 수 있습니다.
var ticks = someDate.getTime();
로부터 MDN 문서 , 반환 값은이다
1970 년 1 월 1 일 00:00:00 UTC (Unix Epoch) 이후의 밀리 초 수를 나타내는 정수 값입니다.
이유 635646076777520000
가 추가 되어 허용되는 답변을 확장합니다 .
자바 스크립트 new Date().getTime() or Date.now()
는에서 전달 된 밀리 초 수를 반환 midnight of January 1, 1970
합니다.
.NET에서 ( 섹션 아래 소스Remarks
)
DateTime 값 유형은 00:00:00 (자정), 0001 년 1 월 1 일 Anno Domini (일반 시대)에서 9999 년 12 월 31 일 오후 11:59:59 (CE)까지 범위의 값으로 날짜 및 시간을 나타냅니다. 달력.
621355968000000000
midnight Jan 1 01 CE
~ 까지의 틱 값입니다.midnight Jan 1 1970
그래서 .NET에서
Console.Write(new DateTime(621355968000000000))
// output 1/1/1970 12:00:00 AM
따라서 자바 스크립트 시간을 .Net 틱으로 변환하려면
var currentTime = new Date().getTime();
// 10,000 ticks in 1 millisecond
// jsTicks is number of ticks from midnight Jan 1, 1970
var jsTicks = currentTime * 10000;
// add 621355968000000000 to jsTicks
// netTicks is number of ticks from midnight Jan 1, 01 CE
var netTicks = jsTicks + 621355968000000000;
이제 .NET에서
Console.Write(new DateTime(netTicks))
// output current time
JavaScript의 날짜에는 오프셋도 포함되어 있습니다. 제거해야하는 경우 다음을 사용하십시오.
return ((date.getTime() * 10000) + 621355968000000000) - (date.getTimezoneOffset() * 600000000);
나는 Skeikh의 솔루션을 사용하고 '오프셋'을 위해 눈금을 뺍니다.
이어야합니다 date.GetTime()
. C #과 Javascript는 서로 다른 초기 날짜를 사용하므로 이와 같은 것을 사용하여 C # DateTime으로 변환하십시오.
public static DateTime GetDateTime(long jsSeconds)
{
DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, 0);
return unixEpoch.AddSeconds(jsSeconds);
}
참고 URL : https://stackoverflow.com/questions/7966559/how-to-convert-javascript-date-object-to-ticks
'program story' 카테고리의 다른 글
Java에서 if (b == false)와 같이 부울 상수와 명시 적으로 비교하는 것이 좋지 않습니까? (0) | 2020.10.28 |
---|---|
자바 스크립트에서 문자열을 한 번 분할 하시겠습니까? (0) | 2020.10.28 |
배열의 첫 번째 항목 제거 (예 : 스택에서 팝핑) (0) | 2020.10.28 |
HTML / CSS 흐름에서 요소를 제거하는 방법은 무엇입니까? (0) | 2020.10.28 |
C #에서 두 'DateTime'사이의 모든 DateTime 가져 오기 (0) | 2020.10.28 |