에포크 시간과 DateTime.UtcNow
사이의 밀리 초를 반환하는 간단한 방법을 쓰면 적절한 대답을 얻습니다. 그러나 임의의 날짜와 시간 사이에 밀리 초를 반환하는 메서드를 작성하면 마지막 세 자리는 항상 0입니다. 'Some arbitrary date'는 메서드에 DateTime.Parse ("임의의 날짜 문자열")의 결과를 전달한다는 의미입니다. 필자가 알아낼 수있는 한 가까이에서 .Parse에 의해 반환 된 DateTime 객체는 모든 유효 자릿수를 반환하지 않습니다.임의의 날짜와 에포크 시간 사이의 밀리 초가 걸리는 시간
시험 방법 :
static void GetMillis()
{
DateTime dUtc = DateTime.UtcNow;
DateTime epoch = new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc);
double utcmillis = (dUtc - epoch).TotalMilliseconds;
String timestamp = dUtc.ToString();
DateTime arbitrary = (DateTime.Parse(timestamp));
Console.WriteLine("Milliseconds between DateTime.UtcNow {0} \nand epoch time {1} are {2}", dUtc, epoch, utcmillis);
Console.WriteLine("Milliseconds between arbitrary date {0} \nand epoch time {1} are {2}", arbitrary, epoch, (arbitrary - epoch).TotalMilliseconds);
}
출력 : 나는 우스꽝 뭔가 잘못하고 또는 여기에 수학을 이해하지 못하는거야 경우 나도 몰라
C:\src\vs\epochConverter\epochConverter\bin\Debug
{powem} [54] --> .\epochConverter.exe -debug
Milliseconds between DateTime.UtcNow 8/26/2012 11:12:31 PM
and epoch time 1/1/1970 12:00:00 AM are 1346022751385.8
Milliseconds between arbitrary date 8/26/2012 11:12:31 PM
and epoch time 1/1/1970 12:00:00 AM are 1346022751000
. 나는 MSDN에서 조사한 결과이 차이점과 관련된 것을 찾을 수 없다. 설명 된대로 밀리를 계산할 수 있기를 정말로 원합니다 - 가능합니까?
감사합니다.
MP
자세한 답변을 보내 주셔서 감사합니다.나는 도전이 결함이 있다고 생각한다. 왜냐하면 나는 두 개의 날짜 사이에 밀리 세컨드 _ 차이를 원하기 때문에 주어진 날짜는 밀리 세컨드 수로 나타낼 수 있어야합니다. 그러나 DateTime 수학에서 실제로 그런 일이 발생하지는 않습니다. 사용 사례는 시연 된 형식의 날짜 문자열이 DateTime 개체로 변환 된 다음 처리되도록하는 것입니다. MSDN 기사, "방법 : 날짜와 시간 값에 밀리 초 표시"를 살펴 봤지만 그 일을 저에게 할 수 없었습니다. – naugiedoggie
유즈 케이스에서 문자열을 구문 분석해야하는 경우 끝에 '000'을 입력하면됩니다. 1970 년 이래로 일부 시스템에서 날짜에 대한 일반적인 내부 표현 인 밀리 초로 인한 것일 수 있습니다. –
그것에 대해 생각한 후에 나는 날짜 계산이 계산 될 때 실제로 일어나는 일을 더 잘 이해했다고 믿습니다. 나는 _epoch time_에서 값을 만들어내는 도구를 가지고 있지만 몇 시간은 밀리 초 단위로, 몇 초 만에 분출하게됩니다. 이것은 분명히 버그이지만 그것은 나에게 블랙 박스입니다. 이 모든 질문의 끝은 이러한 차이를 계산하기위한 가장 간단한 도구를 만드는 것입니다. 나는 그들이 어떻게 일하는지 이해하지 못하는 일을 좋아하지 않는다. ;-) – naugiedoggie