나는 유닉스에 대한 2038 년 버그에 대해 친구와 토론했다. 32 비트 타임 스탬프 버그 ).
우리는 실제로 윈도우가 날짜 자체를 저장하는 방법에 대해 궁금해하고 있었습니까? 나는 그것이 단순한 DateTime이라고 생각했지만 어떻게 시스템이 두 날짜 사이의 델타를 계산할 수 있었을까요?
그것은 가능한 다음 Windows가 내부적으로 타임 스탬프에 데이터를 저장 한 다음 DateTime으로 변환 할 수 있습니까?
나는 유닉스에 대한 2038 년 버그에 대해 친구와 토론했다. 32 비트 타임 스탬프 버그 ).
우리는 실제로 윈도우가 날짜 자체를 저장하는 방법에 대해 궁금해하고 있었습니까? 나는 그것이 단순한 DateTime이라고 생각했지만 어떻게 시스템이 두 날짜 사이의 델타를 계산할 수 있었을까요?
그것은 가능한 다음 Windows가 내부적으로 타임 스탬프에 데이터를 저장 한 다음 DateTime으로 변환 할 수 있습니까?
답변:
1601 년 1 월 1 일 이후로 100 나노 초 간격을 나타내는 64 비트 부호있는 FILETIME이 있습니다. 64 비트가 큰 숫자이기 때문에 엄청나게 오랜 시간이 소요됩니다.
반면 CTIME (Unixtime)은 1970 년 1 월 1 일 이후 초를 나타내는 부호있는 32 비트 정수입니다.
더 나은 질문은 "Windows는 각 형식을 어디에서 사용합니까?"입니다. 시간을 저장하는 모든 일은 잠재적으로 원하는 시간 표현을 사용할 수 있습니다.
AD는 시스템, 파일 시스템 등과 같은 것을 사용합니까? 그 하나에 대한 해답에 관심을 가져라!
double
여기서 정수 부분은 요일과 분수 부분이며 날짜와 시간 및 시간대를 저장하는 사람이 읽을 수있는 문자열입니다.