Convert Unix timestamps and Windows FILETIME values to an exact UTC date, or convert a UTC date back to either timestamp format. The converter retains all seven fractional-second digits supported by 100 ns ticks.
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?
Every result is UTC. The UTC input must end in Z; local clock values and time-zone offsets must be converted 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.
