할 수 있는 방법 파일이 있었'성'에 1641?

몇 년 전에 발견했는데,그것이 시작인 것 같이 파일에서 우리의 fileserver.

과 궁금해할 수 있는 방법 파일의 말 it's 에서 만들어진 1641? 으로 지금까지 알고,시간 pc 에서에 의해 정의의 숫자를 초 이후 Jan1,1970. 는 경우에는 인덱스장,당신을 얻을 수 있습 Dec31,1969(인덱스 아 -1)그러나 나는'm 황에서는 겉으로는 임의의 날짜는 간직도의 창립 United States of America.

그래서 수있는 방법 파일의 일에 1641?

PS:날짜가 프랑스에서. Février 이 있습니다.

질문에 대한 의견 (8)
해결책

이유는 1600 년대부터 현재 가능한가요?

Windows 저장하지는 않는 파일을 수정한 타임스탬프같은 유닉스 시스템지. 에 따라Windows 개발자 센터(강조관):

파일 시간이 64 비트 값을 나타내는 숫자의 100 나노초간격으로 경과된 이후 12:00A.M.1,1601Coordinated Universal Time(UTC). 시스템 기록 파일 때 응용 프로그램을 만들고,액세스,그리고 작성하는 파일이 있습니다.

그래서,설정하여 잘못된 값은 여기에서,당신은 쉽게 얻을 수 있습니다에서 날짜 1600s.

물론,다른 중요한 질문입니다:어떻게 이 값을 설정? 무엇이 실제 실습니까? 나는 당신이'll 지 않을 수 있으로,수있는 단순히 계산의 오류에 파일 시스템 드라이버입니다. 다른 대답 운는 날짜가 실제로 Unix timestamp 으로 해석되는 윈도우 타임스탬프,하지만 그들이'다시 실제로 계산된 서로 다른 간격(초 대 나노초 단위).

어떻게 이와 관련해 2038 문제입니까?

의 사용이 64 비트 데이터 입력을 의미 Windows(일반적으로)에 의해 영향을 받지 않는년 2038 문제가는 전통적인 유닉스 시스템 때문에,유닉스는 처음에 사용되는 32-bit integer,오버플로보다 더 빨리 64-bit integer Windows 니다. (이에도 불구하고 유닉스 운영에서 초고 윈도우 운영에서 마이크로/나노초입니다.)

Windows여전히 영향을 받를 사용하면 32 비트 프로그램 컴파일되었으로 오래된 버전의 Visual Studio,물론입니다.

최신 유닉스는 운영 체제이미 확장는 데이터 입력 64 비트이고,따라서 피하는 문제입니다. (사실 때문에,유닉스 타임 스탬프를 운영하에서 초,새 랩어라운드 날짜 292 억 수 있습니다.)

최대 날짜 설정할 수 있는?

에 대한 호기심을 여기's 을 계산하는 방법에는:

The의 번호를 가능한 값에서는 64-bit integer263–1=9223372036854775807. 각 틱 100 나노초를 나타냅니다,0.1µs 나 0.0000001s. 최대 시간 범위 것9223372036854775807⨉0.0000001s,그래서 수천억의 초입니다. 하나의 시간은 3600 초,어느 날은 86400 초고 일년 365 일 이내에,그래서 거기에86400⨉365s=31536000s입니다. 이것은,물론,평균을 무시하고,윤년,도약을 초,또는 일정 변경하는 미래가 종말론의 정권을 수 있습을 지시에 남아있는군요. *9223372036854775807⨉0.0000001s/31536000s≈29247 년 @corsiKa을 설명할 수 있는 방법을 빼 윤년: 29247 / 365 / 4 ≈ 20 그래서 당신의 최대년1601 + 29247 – 20 = 30828.

일부 사람들은 실제로 설정하려고 했던 이]9과 함께했다.

해설 (6)

지 않는 경우't 느낌 너무 나쁜 일부에 대해 추측,나를 제공합니다. 지't mean"누군가가 설정한 값을 말도 안되"는's 분명히 항상 가능하다:)

유닉스 시간은 일반적으로 사용하는의 수는 초 이후 1970. 윈도우,다른 한편으로는,사용 1601 으로 시작해. 그래서 우리는 가정하면(고는's 큰 가정!) 문제는 잘못된 변환 사이에 두 번,우리가 상상할 수 있는 날이었어야 할 대표는 실제로언젠가에 2011 년(1970 년+41),는 잘못으로 변환 1640(1601+41)</파업을 한다. 편집:실제로,나는 실수로서 윈도우 시작해. It's 가능한 실제 작성 시간이었다 2010 년에,또는 다른 오류가 참여(off-by-one 오류가 매우 일반적인 소프트웨어:D).

을 주는 올해 발생하의 또 다른 추 날짜 파일과 관련된 질문에,나는 그것이's 꽤 그럴듯하게 설명:사용)

해설 (12)

로 작성 되었습니다 다른 사람에 의하여,윈도우 시대에 1601-01-01 00:00.

의 수를 초 사이의 시대와 filetime 표시되는은 1.266.705.294. 만약 우리가 추가하는 유닉스 시대,우리가 도착[2010-02-20 23:34:54 중앙 유럽 표준시][unix],토요일에. 이해하기 전에 마지막에 액세스한 날짜,그것이 다소 그럴듯하다. 그렇게 되었을 수도 있습니다 Unix timestamp 해석에 대하여 잘못된 신 기원입니다.

해설 (1)

평소와 같이 이러한 유형의 질,레이몬드 첸's 블로그는 대답이에서"왜 Win32epoch January1,1601?"항목에서 March6,2009:

FILETIME구조에서 시간을 기록의 형태로 100-nanosecond 간격으로부터 월 1 1601. 왜 날짜 선택?

그레고리력에서 작동하는 400 년 사이클,그리고 1601 가 첫째로 올해의 주기에 활성화되어 있던 시간 NT 되는 설계되었습니다. 다시 말해서,그것은 선택되었을 수학을 올 out 습니다.

실제로 나는 이메일에서 데이브 Cutler 을 확인한다.

해설 (0)