2
최근에 C#을 배우기 시작하고 버그가 발견되어 추적했습니다. DateTime
오브젝트를 타임 스탬프로 변환하면 다시 DateTime
개체의 경우 결과는 DateTime
과 동일하지 않습니다.DateTime을 유닉스 타임 스탬프로 변환하고 다시 다시 실행 - 결과가 동일하지 않습니다.
12/08/2013 15:43:56
12/08/2013 15:43:56
977
977
False
가 왜이 두 객체가 동일하게 처리됩니다
은 내가 인쇄
void Main()
{
DateTime ePoch = new DateTime(1970, 1, 1, 0, 0, 0);
DateTime dateTime = DateTime.UtcNow;
TimeSpan timeSpan = (dateTime.ToUniversalTime() - ePoch);
double unixTimeStamp = timeSpan.TotalSeconds;
DateTime dateTimeConvertedBack = ePoch.AddSeconds(unixTimeStamp);
System.Console.WriteLine(dateTime);
System.Console.WriteLine(dateTimeConvertedBack);
System.Console.WriteLine(dateTime.Millisecond);
System.Console.WriteLine(dateTimeConvertedBack.Millisecond);
System.Console.WriteLine(dateTime == dateTimeConvertedBack); //results in false??
}
을 무슨 뜻인지 나타낼 함께 조각을 넣어?
나는 DateTime
에 대한 ==
테스트에서 값이 아닌 참조를 비교해야한다고 확신합니다.
아, 내가 실제로 비교하기 무슨 값 확신하지 못했습니다. 나는 '틱스 (Ticks)'필드를 알지 못했다. 어떻게 그것을 타임 스탬프로 변환하고 다시 반대로해서 평등을 비교할 수 있습니까? – GP89
@ GP89 답변을 업데이트했습니다. –
감사합니다 (+1). 'timeSpan.Ticks'는 유닉스 타임 스탬프가 아닙니다. – GP89