날짜와 시간

FILETIME 변환기마지막 틱과 속성 의미까지 확인

입력 표현과 LDAP 속성을 선택하면 소수 일곱 자리 UTC 날짜, 상위·하위 워드와 바이트 배열을 함께 볼 수 있습니다.

FILETIME 변환기

입력

입력은 이 브라우저에서 처리되며 서버로 전송되지 않습니다.

결과

옵션

Windows 기준점: 1601-01-01 UTC · 1틱 = 100 ns.

한 줄에 한 값. 상위·하위: high,low (10진수 또는 0x, 부호 있는 10진 워드 허용). 바이트: 16자리 또는 여덟 쌍. 날짜: YYYY-MM-DDTHH:mm:ss[.1–7자리]Z 또는 ±HH:mm; 확장 연도는 +YYYYYY.

바이트 순서는 바이트 입력에만 적용됩니다. 실제 AD 속성을 고르세요. 10진수 -1은 pwdLastSet 쓰기 제어값으로만 허용됩니다.

UTC 날짜는 소수 일곱 자리입니다. Unix 몫은 내림하고 나머지는 100 ns 틱으로 표시합니다.

최대 1,000개 물리적 행, 100,000 UTF-16 코드 단위. 양끝 공백은 제거하며 빈 행은 오류입니다.

입력하거나 예시를 불러오세요.

포렌식 덤프의 Windows 파일 시간이나 AD 내보내기 값을 확인할 때 FILETIME 변환기를 사용할 수 있습니다. 긴 숫자를 먼저 스프레드시트에 넣으면 끝자리가 바뀔 수 있으므로 원래 정수 문자열을 그대로 보관하세요.

0이라는 값만으로는 날짜인지 상태인지 판단할 수 없습니다. 일반 FILETIME의 시작점, 계정의 무기한 상태, 알 수 없는 로그인 시간을 선택한 속성에 맞춰 구분합니다.

FILETIME 변환기로 확인하는 차이

정수와 바이트 순서를 분리

FILETIME 변환기는 하나의 값을 10진수, 전체 16진수, 두 DWORD, 양쪽 바이트 순서로 보여 줍니다. 이미 숫자로 해석한 16진수를 메모리 덤프로 착각해 다시 뒤집는 일을 피할 수 있습니다.

색이 다른 여덟 바이트의 순서가 반대로 바뀌고 하나의 64비트 값의 두 부분을 보여 주는 그림.

속성에 따라 달라지는 0

일반 모드의 0은 1601년 날짜입니다. accountExpires에서는 만료 없음, lastLogon에서는 시간 알 수 없음으로 표시합니다. 특별한 상태에 가짜 날짜나 Unix 시간을 붙이지 않습니다.

같은 0에서 달력, 무한대와 알 수 없는 시간 기호로 갈라지는 그림.

숫자와 바이트 배열을 구분하는 순서

01

원본 표현을 먼저 선택

바이트 입력은 연속 16자리 16진수 또는 공백으로 구분한 여덟 쌍입니다. 상위·하위 입력은 high,low 순서이며 C 구조체의 선언 순서와 다릅니다. 바이트 순서는 바이트 모드에서만 바꿀 수 있습니다.

02

날짜에 시간대를 명시

역변환에는 Z 또는 ±HH:mm이 반드시 필요합니다. 컴퓨터의 지역 시간대를 추측하지 않습니다. 예제는 현재 형식에 맞게 생성되고 적용 전에 바뀔 내용과 크기를 보여 줍니다.

03

최신 결과인지 확인

자동 변환은 편집 후 350 ms 뒤에 실행합니다. 끄면 변환 버튼이나 Ctrl/Cmd+Enter를 사용합니다. 모든 행이 날짜일 때만 역방향으로 적용할 수 있고 실행 취소는 입력과 결과를 함께 복구합니다.

원본 정밀도를 유지하는 보고서

일곱 자리 소수로 왕복

116444736000000001은 1970-01-01T00:00:00.0000001Z입니다. 큰 정수는 문자열과 정수 연산으로 유지하며 밀리초로 반올림하지 않습니다. 같은 날짜를 역변환하면 마지막 한 틱까지 돌아옵니다.

부호 있는 COM 워드 지원

상위·하위에 32비트 부호 있는 10진 LONG이나 부호 없는 DWORD를 넣을 수 있습니다. 음수 워드는 2의 보수로 해석하고 보고서에 두 표현을 모두 기록합니다. 전체 FILETIME 음수에 같은 규칙을 적용하지는 않습니다.

Unix 시간의 나머지도 표시

LDAP 타임스탬프를 Unix 시간으로 바꿀 때는 1601년과 1970년의 기준점 차이를 뺀 다음 초나 밀리초로 나눕니다. 몫은 음의 방향으로 내림하고 나머지는 음수가 아닌 틱으로 남깁니다. 1970년 직전의 100 ns도 잘못된 0으로 잘리지 않습니다.

행별 오류를 보존하는 일괄 처리

최대 1,000행을 처리하며 잘못된 값 하나가 다른 행의 결과를 막지 않습니다. 처음 50행을 표시하고 추가로 펼칠 수 있습니다. 복사와 다운로드에는 원본과 오류를 포함한 전체 JSON 보고서가 들어갑니다.

해석 범위와 입력 규칙

64비트 저장 범위와 날짜 범위
18446744073709551615까지 읽을 수 있지만 9223372036854775807보다 크면 Windows 날짜 변환 범위 밖이라는 상태를 표시합니다. 비트 표현은 유지하고 날짜는 만들지 않습니다. 일반 모드의 최대 날짜에는 확장 연도를 사용합니다.
LDAP 속성별로 다른 특수값
accountExpires의 0과 최대 부호 있는 정수는 만료 없음입니다. pwdLastSet=0은 UF_DONT_EXPIRE_PASSWD 확인이 필요하며 10진수 -1은 쓰기 제어값입니다. lastLogon=0만으로 로그인한 적이 없다고 단정할 수 없습니다.
엄격한 날짜 형식
초와 Z 또는 ±HH:mm이 필요하고 오프셋은 ±14:00 이내여야 합니다. 9999년 이후는 +YYYYYY 형식입니다. 잘못된 날짜, 윤초, 24:00, -00:00과 여덟 자리 이상 소수는 오류로 처리하며 자동 보정하지 않습니다.
자릿수로 형식을 추측하지 않음
10진수, 전체 16진수, 여덟 바이트 또는 high,low를 직접 고릅니다. 지수 표기와 천 단위 구분자는 허용하지 않습니다. 줄 양끝의 공백은 제거하지만 빈 줄은 오류로 남깁니다. 짧은 정수도 유효할 수 있습니다.
추출된 값만 변환
LDAP 연결, 레지스트리나 MFT 해석, 파일 시간 수정, 계정 감사는 수행하지 않습니다. GeneralizedTime, .NET ticks와 Excel 날짜는 별도 도구의 범위입니다. 원본 장치가 기록하지 않은 정밀도를 복원할 수 없습니다.
입력 제한과 교체 취소
최대 100,000 UTF-16 코드 단위와 1,000개 물리적 행을 받습니다. 초과하면 전체 요청이 거부됩니다. 예제, 지우기, 역방향 적용은 미리 보기 후 실행하며 한 번 취소할 수 있습니다. 직접 편집하면 이전 취소 기록은 지워집니다.

FILETIME 변환기 질문

FILETIME과 Unix 시간은 어떻게 다른가요?

기준점과 단위가 다릅니다. FILETIME은 1601년부터의 100 ns 간격이고 Unix 초는 1970년부터의 초입니다. Unix 초를 구하려면 116444736000000000을 뺀 뒤 10000000으로 나누며 소수 정밀도가 필요하면 나머지도 보관합니다.

Windows에서 현재 FILETIME을 얻으려면 어떻게 하나요?

PowerShell에서 [DateTime]::UtcNow.ToFileTimeUtc()를 사용할 수 있습니다. 이 도구에는 실시간 시계 버튼이 없으며 이미 얻은 원본 값의 해석에 집중합니다. 표현 단위가 100 ns라고 해서 실제 시계 정확도가 같은 것은 아닙니다.

FILETIME의 날짜 상한은 어디까지인가요?

구조체는 부호 없는 64비트를 담지만 FileTimeToSystemTime에는 2의 63제곱보다 작은 값이 필요합니다. 일반 모드에서 이 경계를 적용하고 더 큰 값은 날짜 대신 범위 밖 상태로 표시합니다.

AD의 만료 없음은 어떤 값인가요?

accountExpires에서는 0과 9223372036854775807이 모두 만료 없음을 나타냅니다. 해당 속성을 선택해야 이 설명이 적용됩니다. 다른 필드의 0이나 큰 수를 모두 같은 뜻으로 읽으면 안 됩니다.

LDAP 날짜가 모두 같은 형식인가요?

아닙니다. whenCreated와 whenChanged 등은 GeneralizedTime 문자열을 사용할 수 있습니다. 이것은 1601년부터 센 정수가 아니므로 여기서 FILETIME으로 해석하지 않습니다. 먼저 스키마를 확인하세요.

예상과 다른 결과인가요?

원본 필드와 결과를 함께 남기기

FILETIME 변환기의 전체 보고서를 원래 필드 이름과 함께 보관하세요. 어떤 속성과 바이트 순서로 해석했는지, 작은 시간 나머지가 얼마인지 나중에도 확인할 수 있습니다.