Convert a Windows FILETIME or a Unix timestamp in seconds or milliseconds to a UTC date and time, or convert a date back to both timestamp formats.
Timestamp formulas
FILETIME = Unix seconds × 10,000,000 + 116,444,736,000,000,000. A combined FILETIME value is high DWORD × 4,294,967,296 + low DWORD.
| Format | Epoch | Unit |
|---|---|---|
| Unix seconds | 1970-01-01 UTC | 1 second |
| Unix milliseconds | 1970-01-01 UTC | 0.001 second |
| Windows FILETIME | 1601-01-01 UTC | 0.0000001 second |
Example
FILETIME 116444736000000001 is 1970-01-01T00:00:00.0000001Z. Its Unix timestamp is 0.0000001 seconds, or 0.0001 milliseconds. The final tick remains intact even though the integer is too large for exact ordinary floating-point storage.
Frequently asked questions
What time zone is used?
Results are in UTC, with your browser’s local time shown as an extra line. The date input is read as UTC (a final Z is optional); convert local clock values and time-zone offsets before entry.
Can a Unix timestamp be negative?
Yes. A negative value identifies a time before 1970. Dates before 1601 have no unsigned FILETIME equivalent.
Does 100 ns precision mean the file time was measured that accurately?
No. A timestamp format can represent finer intervals than the file system or clock actually records. Calendar years 0001–9999 are supported; leap-second labels and special API sentinel values are excluded.
Reference: Microsoft FILETIME definition.
