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.

The 64-bit count of 100 ns ticks since 1601-01-01 UTC, e.g. 133500000000000000 or 0x01DA2B3C4D5E6F70.

Optional settings

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.

FormatEpochUnit
Unix seconds1970-01-01 UTC1 second
Unix milliseconds1970-01-01 UTC0.001 second
Windows FILETIME1601-01-01 UTC0.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.